|
From: Jenny L. <jli...@pi...> - 2003-09-05 17:03:42
|
I went back to do this and noticed that the bad block was no longer on = the same line as I initially found. Weird... So I re-tracked it down = and am running objdump -S on my program. My program is over 100MB in = size. objdump took about an hour to complete and produced output of = ~98MB. The address was looking for is not in the objdump output. Any ideas why? Why does the bad block change on me? -Jenny -----Original Message----- From: Nicholas Nethercote [mailto:nj...@ca...] Sent: Friday, September 05, 2003 9:18 AM To: Jenny Lighthart Cc: val...@li... Subject: Re: [Valgrind-users] disInstr in block 1311986 On Fri, 5 Sep 2003, Jenny Lighthart wrote: > I get "Illegal instruction (core dumped)" if I let the program run > beyond block 1311986. > > Using "valgrind --stop-after=3D1311986 myprogram" produces the = following > output. Can anyone help me interpret what this means so that I can > identify a c/c++ source file to blame the breakage on? > > ------------------------- > disInstr: unhandled instruction bytes: 0x66 0xF 0x0 0xC8 > =3D=3D=3D=3D=3D=3Dvvvvvvvv=3D=3D=3D=3D=3D=3D LAST TRANSLATION = =3D=3D=3D=3D=3D=3Dvvvvvvvv=3D=3D=3D=3D=3D=3D > Original x86 code to UCode: > > 0x84C5F6C: movzwl -20(%ebp),%edx > > 0: GETL %EBP, t2 > 1: LEA1L -20(t2), t0 > 2: LDW (t0), t0 > 3: WIDENL _Wzt0 > 4: PUTL t0, %EDX > 5: INCEIPo $4 > > 0x84C5F70: disInstr: unhandled instruction bytes: 0x66 0xF = 0x0 0xC8 > > 6: CALLM_So > 7: CALLMo $0xE5 > 8: CALLM_Eo > 9: JMPo $0x84C5F73 Instruction 0x84C5F70 looks to be in the text of 'myprogram'. If 'myprogram' is compiled with debug info (-g), do "objdump -S myprogram" and find the offending instruction. The original program text should be nearby. N |