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 |
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.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
299.1 | Suggestions | SMURF::JPW | John P Williams, DUDE, USG, 381-2079 | Thu Apr 24 1997 09:14 | 26 |
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.2 | AUSS::BELL | Caritas Patiens est | Thu Apr 24 1997 18:29 | 26 | |
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.3 | more | AUSS::BELL | Caritas Patiens est | Sun Apr 27 1997 23:11 | 10 |
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.4 | fixed | AUSS::BELL | Caritas Patiens est | Wed Apr 30 1997 17:22 | 4 |
John has provided me with a fixed version of third, that has instrumented the applications. Peter. |