Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.

SDE debugtrace output incomplete

Michael_R_8
Beginner
704 Views

I am running SDE to trace a program, and the output stops without explanation.

I used -dt_filter_start 0x100401000 and -dt_filter_end 0x100409000 to enclose the portion of the program to trace.

In case the problem is dependent on the program being traced, here are the last several lines of output:

TID0: INS 0x0000000100402c29             AVX512EVEX vcvtsi2sd xmm30, xmm29, eax
TID0:   XMM30 := 00000000_00000000_00000000_00000000
TID0:   XMM30 :=                 0                 0    (doubles)
TID0:   XMM30 :=        0        0        0        0    (floats)
TID0: INS 0x0000000100402c2f             AVX512EVEX vcvtsi2sd xmm30, xmm29, ebp
TID0:   XMM30 := 00000000_00000000_00000000_00000000
TID0:   XMM30 :=                 0                 0    (doubles)
TID0:   XMM30 :=        0        0        0        0    (floats)
TID0: INS 0x0000000100402c35             AVX512EVEX vcvtsi2sd xmm30, xmm29, r13d
TID0:   XMM30 := 00000000_00000000_00000000_00000000
TID0:   XMM30 :=                 0                 0    (doubles)
TID0:   XMM30 :=        0        0        0        0    (floats)
TID0: Read 0 = *(UINT32*)000007FFFFFDA000
TID0: INS 0x0000000100402c3b             AVX512EVEX vcvtsi2sd xmm30, xmm29, dword ptr [rcx]
TID0:   XMM30 := 00000000_00000000_00000000_00000000
TID0:   XMM30 :=                 0                 0    (doubles)
TID0:   XMM30 :=        0        0        0        0    (floats)

 

The following instruction disassembles with objdump as:

    1c41:       62 21 17 20 2a b4 f0    vcvtsi2sd xmm30,xmm29,DWORD PTR [rax+r14*8+0x123]
    1c48:       23 01 00 00

 

 If I run the traced program on my system, it stops with 'illegal instruction' but I don't know where that instruction might be.  It could be the one quoted above.  But usually SDE will trace the exception if I have an illegal instruction.

 

0 Kudos
1 Reply
MarkC_Intel
Moderator
704 Views

The illegal instruction is probably what is stopping your program and the output.

You might try adding the knob -dt-flush to turn off the output buffering.  slower though.

The start/end triggers are approximate -- you could also try widening the range. 

Also see -itrace-execute -itrace-flush  (the -long-help output uses underscores). Much less output than debugtrace. Quicker.

 

0 Kudos
Reply