[lldb-dev] RegisterContextPOSIX_i386
Michael Sartain
mikesart at gmail.com
Tue Oct 1 12:16:24 PDT 2013
On Fri, Sep 13, 2013 at 11:33 AM, Thirumurthi, Ashok <
ashok.thirumurthi at intel.com> wrote:
> One point to consider is if there is scope for some common code between
> architectures. Note that the list of architectures will only grow (i.e.
> x32). A future point is to keep POSIX-isms nicely contained. When
> considering platform-independent remote debugging that is consistent with
> native-local debugging, we'll want code consistent between platforms to
> live in one place.
>
Here is a first pass at this:
http://llvm-reviews.chandlerc.com/D1798
It passes all the 64-bit linux tests, although there is still a bit of
cleanup I need to do.
- FreeBSD is most likely busted... (I'll contact Ed about working on this
when it's a bit more nailed down.)
- I need to check and fix dwarf / gdb constant values.
- I don't like the ConvertRegisterKindToRegisterNumber() routines.
- Also don't like the
RegisterContextPOSIXProcessMonitor_x86_64::ReadRegister() / WriteRegister()
routines.
- Need to implement RegisterContextPOSIX_i386* so 32-bit LLDB will fully
work. (This may come in a second checkin).
- Would love to have xmm00, xmm01, etc. type aliases for mmx, sse, and avx
registers.
If anyone has any general feedback on how any of this looks and/or ideas on
more cleanup, please fire away.
Thanks much.
-Mike
----
(lldb i386 target) register read
General Purpose Registers:
eax = 0xffcf2354
ebx = 0xf7605ff4
ecx = 0x00000001
edx = 0x08048980
edi = 0x00000000
esi = 0x00000000
ebp = 0xffcf22b8
esp = 0xffcf1f40
eip = 0x080486b2 sse32`main + 258 at sse.cpp:40
eflags = 0x00000282
cs = 0x00000023
fs = 0x00000000
gs = 0x00000063
ss = 0x0000002b
ds = 0x0000002b
es = 0x0000002b
(lldb x64 target) register read
General Purpose Registers:
rax = 0x0000000000400ce0
rbx = 0x0000000000000000
rcx = 0x0000000000000040
rdx = 0x00007fff03d15e38
rdi = 0x0000000000000001
rsi = 0x00007fff03d15e28
rbp = 0x00007fff03d15d40
rsp = 0x00007fff03d15960
r8 = 0x0000000000400c30 sse64`__libc_csu_fini
r9 = 0x00007fa459ca1740 ld-linux-x86-64.so.2`_dl_fini at
dl-fini.c:133
r10 = 0x00007fff03d15ba0
r11 = 0x00007fa458cc1680 libc.so.6`__libc_start_main at
libc-start.c:96
r12 = 0x0000000000400650 sse64`_start
r13 = 0x00007fff03d15e20
r14 = 0x0000000000000000
r15 = 0x0000000000000000
rip = 0x0000000000400774 sse64`main + 52 at sse.cpp:32
rflags = 0x0000000000000206
cs = 0x0000000000000033
fs = 0x0000000000000000
gs = 0x0000000000000000
ss = 0x000000000000002b
ds = 0x0000000000000000
es = 0x0000000000000000
I also added a bunch of register aliases (ax, ah, al, etc.) which you can
set via "register read -a".
General Purpose Registers:
eax = 0xffd22ac4
ebx = 0xf75b7ff4
ecx = 0x00000001
edx = 0x08048980
edi = 0x00000000
esi = 0x00000000
ebp = 0xffd22a28
esp = 0xffd226c0
eip = 0x080485e4 sse32`main + 52 at sse.cpp:32
eflags = 0x00000286
cs = 0x00000023
fs = 0x00000000
gs = 0x00000063
ss = 0x0000002b
ds = 0x0000002b
es = 0x0000002b
ax = 0x2ac4
bx = 0x7ff4
cx = 0x0001
dx = 0x8980
di = 0x0000
si = 0x0000
bp = 0x2a28
sp = 0x26c0
ah = 0xc4
bh = 0xf4
ch = 0x01
dh = 0x80
al = 0xc4
bl = 0xf4
cl = 0x01
dl = 0x80
dil = 0x00
sil = 0x00
bpl = 0x28
spl = 0xc0
...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20131001/5c69aaba/attachment.html>
More information about the lldb-dev
mailing list