OS/2, eCS & ArcaOS - Technical > Programming

Only short exceptq report although .xqs file was there, why?

(1/4) > >>

Andi B.:
I see an application crash but only this short exceptq report

--- Code: ---______________________________________________________________________

 Exception Report - created 2022/01/21 14:28:40

 Hostname:         NUC-J3160
 OS2/eCS Version:  2.45
 # of Processors:  4
 Physical Memory:  2994 mb
 Virt Addr Limit:  2048 mb
 Exceptq Version:  7.11.5-shl BETA8 (Jun  1 2020 18:37:02)


 Exception C0000005 - Access Violation

 Process:  P:\UTIL\PCM9362_ANETCOM.EXE (07/17/2020 16:00:11 121,227)
 PID:      78 (120)
 TID:      02 (2)
 Priority: 200

 Filename: P:\UTIL\PCM9362_ANETCOM.EXE (07/17/2020 16:00:11 121,227)
 Address:  005B:0002ADA6 (0002:0000ADA6)
 Cause:    Attempted to read from 00000000
           (not a valid address)
--- End code ---
No more data.

As stated in the docs there is the matching xqs file in the same directory -

--- Code: ---{0}[p:\util] dir pcm*

 Volume in drive P is Apps           Serial number is 92FC:A5C3
 Directory of  P:\util\pcm*

17.07.20  16.00         121.227      0   ___A_  PCM9362_AnetCom.exe
17.07.20  15.59          11.662      0   ___A_  PCM9362_AnetCom.xqs
         132.889 bytes in 2 files and 0 dirs
         135.168 bytes allocated bytes (17GB) free

--- End code ---
At the same time there was a popuplog.os2 entry written -

--- Code: ---------------------------------------------------------------

01-21-2022  14:28:40  SYS3171  PID 0078  TID 0002  Slot 00a8
P1=00000001  P2=00000000  P3=XXXXXXXX  P4=XXXXXXXX 
EAX=01000e48  EBX=01000b20  ECX=0000000a  EDX=00000014
ESI=01000b20  EDI=00ffffec 
DS=0053  DSACC=d0f3  DSLIM=7fffffff 
ES=0053  ESACC=d0f3  ESLIM=7fffffff 
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:1dc6058c  CSACC=d0df  CSLIM=7fffffff
SS:ESP=0053:00ffffec  SSACC=d0f3  SSLIM=7fffffff
EBP=01000b90  FLG=00010206

PCM9362_ANETCOM.EXE 0002:0000ada6
--- End code ---

I didn't see traps in this application since a long time and considered it quite stable. At the same time it wrote the usual message in it's log file so I guess it's some problem in the serial communication library I use. But the question here is not why my program crashes, I'm wondering why the exceptq report is not that helpful as usual. Any hints?

I don't know what the .XQS files are for or what they do but nowadays I find .DBG files. Looking into them, they obviously contain the stripped debug info. I would expect that you need these files if you want to have source file and linenumber information printed out in your EXCEPTQ report.
Can you build your app, strip the debug info and have that placed into a .DBG file with the same filestem as your executable binary ?

It's something like this:

emxomfstrip -D PCM9362_AnetCom.dbg PCM9362_AnetCom.exe

or, if you want to remove the debug info from the exe and only have it in the .DBG file:

emxomfstrip -D PCM9362_AnetCom.dbg -o PCM9362_AnetCom.exe PCM9362_AnetCom.exe (I believe)

Andi B.:
Edit: thanks for your info which answers my question below.

How do I make a .dbg file with watcom?

Exceptq accepts the following -

--- Code: ---Exceptq searches for debug data in the following order:

  embedded debug data
  .dbg file
  .xqs file
  .sym file
--- End code ---

I create the .xqs file from the mapfile with 'mapxqs $*.map'

--- Code: ---{0}[p:\usr\share\doc\exceptq-7.11.5] mapxqs

 mapxqs v1.04a - (C)2010-2011  R L Walsh
 Creates .xqs symbol files from IBM, Watcom, and Borland .map files.

 Usage:  mapxqs [-options] [optional_files] mapfile[.map]
 General options:
   -o  specify output file             (default: *.xqs)
   -l  create a listing of symbols     (default: *.xql)
   -m  omit module file names          (default: include module info)
 Demangler options:
   -g  use builtin GCC demangler       (default)
   -v  use VAC demangler               (requires demangl.dll)
   -n  don't demangle symbols
 Other options:
   -d  dump symbols in *.xqs to *.xql  (example: mapxqs -d file.xqs)
       note: -o is the only option that can be used with -d
--- End code ---

Andi B.:
Looking at the map file I see at the failing address watcoms MemAllocator -

--- Code: ---Module: P:\watcom/lib386/os2\clib3r.lib(nmemneed.c)
0002:0000ad60  __nmemneed_
Module: P:\watcom/lib386/os2\clib3r.lib(mem.c)
0002:0000ad70  __MemAllocator
0002:0000ae20  __MemFree
Module: P:\watcom/lib386/os2\clib3r.lib(grownear.c)

--- End code ---
Seems a bit strange to me. Puzzling....


[0] Message Index

[#] Next page

Go to full version