[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference caldec::wrl_atom

Title:ATOM Tool Development System
Moderator:CALDEC::SCHMIDT
Created:Tue Sep 07 1993
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:309
Total number of notes:979

299.0. "SEGV in atom/third on C++ image" by AUSS::BELL (Caritas Patiens est) Wed Apr 23 1997 21:11

Atom is crashing with a SEGV when I try and instrument a large image with
third. It appears to me that a long string is copied to the stack overwriting
the return address for a routine. 

Debug output follows. I located the the source of the failing address on the
stack, but could not find a copy anywhere else in memory. Suggestions for more
debugging are welcome.

The image is compiled with C++ V5.4, and uses the STL extensivly. I can make
the image available for copying, but it is big and there is limited bandwidth
available from Australia to the USA. 

Peter.

Atom V2.29  December 3, 1996

Digital UNIX V3.2G (Rev. 62); Tue Sep  3 21:41:16 EST 1996

> ls -l
-rwxr-xr-x   1 bell     users    87285760 Apr 23 16:41 aan_svr

> atom -tool third aan_svr  -env threads -debug

dbx version 3.11.8
Type 'help' for help.

[2] stop in InstrumentAll
atom: Warning: Shared library '/usr/shlib/libdce.so' has very old relocations
, ignored.
atom: Warning: Shared library '/usr/shlib/libims.so' has no relocation record
s, ignored.
atom: Warning: Shared library '/usr/lib/cmplrs/cxx/libcxx.so' has very old re
locations, ignored.
signal Segmentation fault at
/tmp/atomAAAaab9wa/dbxinit: 4: warning: PC value 0x617265744938656c not valid
, trying RA

/tmp/atomAAAaab9wa/dbxinit: 4: warning: RA value 0x617265744938656d not valid
, trying text start

/tmp/atomAAAaab9wa/dbxinit: 4: warning: text start 0x120000000 not valid, try
ing data start

/tmp/atomAAAaab9wa/dbxinit: 4: warning: Using data start as a text address --
 traceback will not work
> [., 0x140000000]      call_pal        cflush
(/bin/dbx)
(/bin/dbx) 0x11ffC0000/0x40000 M 0x6172657449386500 0xffffffffffffff00
000000011fff6a98:  617265744938656d
(/bin/dbx) 0x011fff6a50/s
000000011fff6a50: "__ct__551pair__TQ1251rb_tree__T50pair__TPC16SidlNameNodeIn
foQ110ObjectName8Iterator50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator
112ident__T50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator50pair__TPC16S
idlNameNodeInfoQ110ObjectName8Iterator20aanba_TraversalOrder14const_iteratorQ
1251rb_tree__T50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator50pair__TPC
16SidlNameNodeInfoQ110ObjectName8Iterator112ident__T50pair__TPC16SidlNameNode
InfoQ110ObjectName8Iterator50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterat
or20aanba_TraversalOrder14const_iteratorXRCQ1251rb_tree__T50pair__TPC16SidlNa
meNodeInfoQ110ObjectName8Iterator50pair__TPC16SidlNameNodeInfoQ110ObjectName8
Iterator112ident__T50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator50pair
__TPC16SidlNameNodeInfoQ110ObjectName8Iterator20aanba_TraversalOrder14const_i
teratorRCQ1251rb_tree__T50pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator5
0pair__TPC16SidlNameNodeInfoQ110ObjectName8Iterator112ident__T50pair__TPC16Si
dlNameNodeInfoQ110ObjectName8Iterator50pai"
(/bin/dbx) 0x11fff6a00/100 X
000000011fff6a00:  000000012002c354 000000014481a3a0
000000011fff6a10:  00000001400159d4 00000001472036f0
000000011fff6a20:  0000000140015a00 0000000140453600
000000011fff6a30:  0000000140027f00 0000000000000001
000000011fff6a40:  0000000000000000 00000001ffffffff
000000011fff6a50:  35355f5f74635f5f 545f5f7269617031
000000011fff6a60:  5f62723135323151 35545f5f65657274
000000011fff6a70:  545f5f7269617030 6c64695336314350
000000011fff6a80:  65646f4e656d614e 303131516f666e49
000000011fff6a90:  614e7463656a624f 617265744938656d
000000011fff6aa0:  6961703035726f74 36314350545f5f72
000000011fff6ab0:  656d614e6c646953 6f666e4965646f4e
000000011fff6ac0:  656a624f30313151 4938656d614e7463
000000011fff6ad0:  31726f7461726574 5f746e6564693231
000000011fff6ae0:  726961703035545f 5336314350545f5f
000000011fff6af0:  4e656d614e6c6469 516f666e4965646f
000000011fff6b00:  63656a624f303131 744938656d614e74
000000011fff6b10:  3035726f74617265 50545f5f72696170
000000011fff6b20:  4e6c646953363143 4965646f4e656d61
000000011fff6b30:  4f303131516f666e 6d614e7463656a62
000000011fff6b40:  7461726574493865 626e61613032726f
000000011fff6b50:  7265766172545f61 726564724f6c6173
000000011fff6b60:  5f74736e6f633431 726f746172657469
000000011fff6b70:  5f62723135323151 35545f5f65657274
000000011fff6b80:  545f5f7269617030 6c64695336314350
000000011fff6b90:  65646f4e656d614e 303131516f666e49
000000011fff6ba0:  614e7463656a624f 617265744938656d
000000011fff6bb0:  6961703035726f74 36314350545f5f72
000000011fff6bc0:  656d614e6c646953 6f666e4965646f4e
000000011fff6bd0:  656a624f30313151 4938656d614e7463
000000011fff6be0:  31726f7461726574 5f746e6564693231
000000011fff6bf0:  726961703035545f 5336314350545f5f
000000011fff6c00:  4e656d614e6c6469 516f666e4965646f
000000011fff6c10:  63656a624f303131 744938656d614e74
000000011fff6c20:  3035726f74617265 50545f5f72696170
000000011fff6c30:  4e6c646953363143 4965646f4e656d61
000000011fff6c40:  4f303131516f666e 6d614e7463656a62
000000011fff6c50:  7461726574493865 626e61613032726f
000000011fff6c60:  7265766172545f61 726564724f6c6173
000000011fff6c70:  5f74736e6f633431 726f746172657469
000000011fff6c80:  3135323151435258 5f656572745f6272
000000011fff6c90:  726961703035545f 5336314350545f5f
000000011fff6ca0:  4e656d614e6c6469 516f666e4965646f
000000011fff6cb0:  63656a624f303131 744938656d614e74
000000011fff6cc0:  3035726f74617265 50545f5f72696170
000000011fff6cd0:  4e6c646953363143 4965646f4e656d61
000000011fff6ce0:  4f303131516f666e 6d614e7463656a62
000000011fff6cf0:  7461726574493865 656469323131726f
000000011fff6d00:  703035545f5f746e 4350545f5f726961
000000011fff6d10:  614e6c6469533631 6e4965646f4e656d
000000011fff6d20:  624f303131516f66 656d614e7463656a
000000011fff6d30:  6f74617265744938 5f72696170303572
000000011fff6d40:  695336314350545f 6f4e656d614e6c64
000000011fff6d50:  31516f666e496564 7463656a624f3031
000000011fff6d60:  65744938656d614e 613032726f746172
000000011fff6d70:  6172545f61626e61 724f6c6173726576
000000011fff6d80:  6e6f633431726564 61726574695f7473
000000011fff6d90:  3231514352726f74 6572745f62723135
000000011fff6da0:  61703035545f5f65 314350545f5f7269
000000011fff6db0:  6d614e6c64695336 666e4965646f4e65
000000011fff6dc0:  6a624f303131516f 38656d614e746365
000000011fff6dd0:  726f746172657449 5f5f726961703035
000000011fff6de0:  6469533631435054 646f4e656d614e6c
000000011fff6df0:  3131516f666e4965 4e7463656a624f30
000000011fff6e00:  7265744938656d61 69323131726f7461
000000011fff6e10:  35545f5f746e6564 545f5f7269617030
000000011fff6e20:  6c64695336314350 65646f4e656d614e
000000011fff6e30:  303131516f666e49 614e7463656a624f
000000011fff6e40:  617265744938656d 6961703035726f74
000000011fff6e50:  0000000120033800 000000014695a918
000000011fff6e60:  000000014695a910 000000011fffee40
000000011fff6e70:  000000014001b024 ffffffffffffffff
000000011fff6e80:  0000000000000000 ffffffffffffffff
000000011fff6e90:  000000012002d718 0000000000000018
000000011fff6ea0:  00000001469a1160 ffffffffffffffff
000000011fff6eb0:  000000012003380c 000000014695a9b0
000000011fff6ec0:  000000014695a9a8 000000011fffee40
000000011fff6ed0:  000000014001b024 ffffffffffffffff
000000011fff6ee0:  0000000000000000 ffffffffffffffff
000000011fff6ef0:  000000012002d718 0000000000000018
000000011fff6f00:  00000001469a1180 ffffffffffffffff
000000011fff6f10:  000000012003380c 000000014695aa48
000000011fff6f20:  000000014695aa40 000000011fffee40
000000011fff6f30:  000000014001b024 ffffffffffffffff
000000011fff6f40:  0000000000000000 ffffffffffffffff
000000011fff6f50:  000000012002d718 0000000000000018
000000011fff6f60:  00000001469a11a0 ffffffffffffffff
000000011fff6f70:  000000012003380c 000000014695aae0
000000011fff6f80:  000000014695aad8 000000011fffee40
000000011fff6f90:  000000014001b024 ffffffffffffffff
000000011fff6fa0:  0000000000000000 ffffffffffffffff
000000011fff6fb0:  000000012002d718 0000000000000018
000000011fff6fc0:  00000001469a11c0 ffffffffffffffff
000000011fff6fd0:  000000012003380c 000000014695ab78
000000011fff6fe0:  000000014695ab70 000000011fffee40
000000011fff6ff0:  000000014001b024 ffffffffffffffff
000000011fff7000:  0000000000000000 ffffffffffffffff
000000011fff7010:  000000012002d718 0000000000000018
000000011fff7020:  00000001469a11e0 ffffffffffffffff

(/bin/dbx) printregs

$vfp= 0                                 $r0_v0=0
$r1_t0=2368                             $r2_t1=5476382712
$r3_t2=0                                $r4_t3=5476382720
$r5_t4=1                                $r6_t5=0
$r7_t6=365                              $r8_t7=0
$r9_s0=7593473799080800116              $r10_s1=5444313856
$r11_s2=1                               $r12_s3=5368797696
$r13_s4=5373244928                      $r14_s5=5368872704
$r15_s6=1                               $r16_a0=5476382712
$r17_a1=5476242712                      $r18_a2=8192
$r19_a3=5476378568                      $r20_a4=5476382720
$r21_a5=5476382728                      $r22_t8=0
$r23_t9=0                               $r24_t10=366
$r25_t11=0                              $r26_ra=7021786319143069037
$r27_t12=4832572768                     $r28_at=649
$r29_gp=5368796144                      $r30_sp=4831834688
$r31_zero=0                             $f0=  0.10000000000000001
$f1=  0.90000000000000002               $f2=  0.0
$f3=  0.0                               $f4=  0.0
$f5=  0.0                               $f6=  0.0
$f7=  0.0                               $f8=  0.0
$f9=  0.0                               $f10= 6.1581259083491651e-316
$f11= 124641856.0                       $f12= 12464185.600000001
More (n if no)?
$f13= 6.1581256119097776e-317           $f14= 2.0722970873410243e-317
$f15= 4194376.0                         $f16= 0.0
$f17= 0.0                               $f18= 0.0
$f19= 0.0                               $f20= 0.0
$f21= 0.0                               $f22= 6.1581259083491651e-316
$f23= 124641856.0                       $f24= 12464185.600000001
$f25= 2.0                               $f26= 0.5
$f27= 268435456.5                       $f28= 1.3262473693532952e-315
$f29= 0.0                               $f30= 0.0
$f31= 0.0                               $pc=  7021786319143069036
$ps=  8                                 $fpcr=0
    
T.RTitleUserPersonal
Name
DateLines
299.1SuggestionsSMURF::JPWJohn P Williams, DUDE, USG, 381-2079Thu Apr 24 1997 12:1426
Here are some suggestions:

1. Move to Digital UNIX V4.0*, not so much because that will help avoid
   the problems you describe, but because the resulting instrumented
   executable stands some chance of executing correctly. That is, several
   problems have been reported with atomized threaded programs on V3.2*,
   so now I actively discourage it, since we're not authorized to provide
   support for atom on that platform.

2. A second potential problem is that it uses libdce, which is also an
   issue in some other problems that have been described in this conference
   (in particular, note 283). DCE may be another hoop that we still need
   to teach the atom tools how to jump through.

3. The string that you describe looks somewhat like the string table from
   a C++ object file's symbol table. You could verify this. It suggests
   that there is a bug in Third Degree's instrumentation. Perhaps it is
   just not coping with the size of your program (which is no less a bug).
   You could try compiling the program such that is retains less symbolic
   information, though that will make Third Degree's error-log less symbolic.
   I would also like to get a copy of the program and its shared libraries,
   so that we can investigate the instrumentation time failure. We will not
   be able to investigate it immediately, so air-mailing us a TLZ04/6/7
   would be okay if the network is too slow - email me for an address.
   Alternatively, I will happily do the copying if you email me a DECnet 
   or anonymous ftp location from which I can copy.
299.2AUSS::BELLCaritas Patiens estThu Apr 24 1997 21:2926
    Answers:
    
    1. Moving to Digital UNIX V4.0* is not an option at present, there are
    too many infrastructure bits and pieces which are not available as yet
    on DUNIX 4.
    
    2. Only small parts of DCE are used by this application (security, some
    naming, and date manipulation, no RPC) and previous versions of the
    image have happily been "third degreed".
    
    3. I agree, the string is almost certainly from a C++ object file
    symbol table. I will try an image without the '-g' switch.
    
    About threads, the application is not of itself threaded, but DCE
    and possibly some shared images use threads. I have found that not
    instrumenting the dce and cxx shared library allows the the atom/third
    instrumented image to execute.
    
    My immediate management wants to consult with upper management before
    they will allow copying of an image, and today is a Public Holiday (ie
    the workers work and the bosses play) so it will be Monday be anything
    happens on that side. The total image size is about 85,000,000 bytes,
    and growing.
    
Peter.
          
299.3moreAUSS::BELLCaritas Patiens estMon Apr 28 1997 02:1110
    John,
    
    I will mail you the anon ftp address, and file names.
    
    I will also QAR this problem. The image appears to have memory leaks
    which have appeared only in the latest versions, and any help in
    tracking them down would be appreciated.
    
Peter.
    
299.4fixedAUSS::BELLCaritas Patiens estWed Apr 30 1997 20:224
    John has provided me with a fixed version of third, that has
    instrumented the applications.
    
Peter.