[Dwarf-discuss] Dwarf-discuss Digest, Vol 23, Issue 1
Bishop, John E
john.e.bishop
Wed Oct 4 20:21:21 GMT 2006
> I understand that DW_OP_breg5 is the value of a register, right? But
> what is that register? (ebp? I am on Intel x86)
This is one of those things that each compiler gets to
decide, if I understand correctly. DWARF just says how
to name a register, the compiler guys decide how to map
those names to actual registers, and the debugger must
follow suit.
I believe the Intel mapping is as follows, based on one
experiment with IDB internals:
Register number 0 is eax
Register number 1 is ecx
Register number 2 is edx
Register number 3 is ebx
Register number 4 is esp
Register number 5 is ebp
Register number 6 is esi
Register number 7 is edi
Register number 8 is eip
Register number 9 is eflags
Register number 10 is cs
Register number 11 is ss
Register number 12 is ds
Register number 13 is es
Register number 14 is fs
Register number 15 is gs
Register number 16 is orig_eax
Register number 17 is fctrl
Register number 18 is fstat
Register number 19 is ftag
Register number 20 is fiseg
Register number 21 is fioff
Register number 22 is foseg
Register number 23 is fooff
Register number 24 is fop
Register number 25 is f0
Register number 26 is f1
Register number 27 is f2
Register number 28 is f3
Register number 29 is f4
Register number 30 is f5
Register number 31 is f6
Register number 32 is f7
Register number 33 is xmm0
Register number 34 is xmm1
Register number 35 is xmm2
Register number 36 is xmm3
Register number 37 is xmm4
Register number 38 is xmm5
Register number 39 is xmm6
Register number 40 is xmm7
Register number 41 is mxcsr
Register number 42 is vfp
Note that these don't exactly reflect any of
the structs the system returns to PTRACE calls
or the like. And they may be IDB-internal rather
than the actual BREG mapping. I'll try to
chase that down and post another reply.
-John
More information about the Dwarf-discuss
mailing list