Thank you, Clayton. It works now! Our debugger server responds "name:J28;generic:fp;bitsize:32;encoding:uint;format:hex;gcc:60;dwarf:60". And I also set other "generic" attributes like sp, pc, ra, arg1~arg8 to related registers.
I dig a little and find llvm dwarf generator uses TargetRegisterInfo::getFrameRegister() to obtain frame base, and uses TargetFrameLowering::getFrameIndexReference() to obtain frame base as well as frame offset of a variable. lldb is OK to check value of variable including both formal arguments and locals, although some line numbers are still improper. For example, in the case mentioned above, ".loc 1 2 0 prologue_end" is actually the start point of prologue. Any suggestions? Best regards. 2014-02-21 2:57 GMT+08:00 Greg Clayton <[email protected]>: > > On Feb 20, 2014, at 1:28 AM, 杨勇勇 <[email protected]> wrote: > > > Thank you, Clayton. This is very helpful. > > > > We use the LLDB specific GDB remote extensions, and our debugger server > supports "qRegisterInfo" package. "reg 0x3c" is the frame pointer. > > > > In the example mentioned above, we have SP = FP - 40 for current call > frame. > > And variable "a" is stored at address (FP + -24) from asm instruction > [FP + -24] = R3;; > > Thus we can conclude that SP + 16 = FP - 40 + 16 = FP -24 is the desired > address. Here "16" is the offset obtained from debug info. > > > > So I guess there is something incompatible between our compiler backend > and debug info generator. > > Here is my questions: > > 1. How can we specify which register should be DW_AT_frame_base? > > You don't need to, there is a DWARF location expression in the > DW_AT_frame_base attribute attached to the function: > > DW_AT_frame_base( regx 0x0000003c ) > > This means: > > DW_OP_regx(0x0000003c) > > Or that the frame base is in register 0x3c. Now qRegisterInfo packets you > send back to LLDB must include "DWARF" register numbers. Sometimes the > register numbers the compiler uses for EH frame (from the .eh_frame > section) differ from the register numbers used in DWARF (any register > numbers in .debug_frame, .debug_info, .debug_loc, and more). So you need to > explicitly specify these numbers: > > At the end of this email is a complete version of the qRegisterInfo > packets and responses for x86_64. Be sure to check the gcc:<regnum> > (compiler register numbering for EH frame), dwarf:<regnum> (for DWARF > mappings, but no all registers get DWARF register numbers because some will > never contain variable values), and also look for the "generic" key value > pairs like "generic:arg1;" for the first argument to functions as the ABI, > and "generic:pc;" for the program counter. If you think you are specifying > these all correctly, please attach the output of running your program after > doing a: > > (lldb) log enable gdb-remote packets > (lldb) gdb-remote ... > > Then I might be able to spot something wrong in the register definitions. > > . How can we adjust the offset in DW_AT_location for variables? > > You don't need to, each variable already has the needed offset from the > frame base and you DWARF looks good. Once you get your register info worked > out, your variables should display just fine. > > x86_64-apple-macosx qRegisterInfo packet log: > > $qRegisterInfo0#72 > $name:rax;bitsize:64;offset:0;encoding:uint;format:hex;set:General Purpose > Registers;gcc:0;dwarf:0;invalidate-regs:0,15,25,35,39;#00 > $qRegisterInfo1#73 > $name:rbx;bitsize:64;offset:8;encoding:uint;format:hex;set:General Purpose > Registers;gcc:3;dwarf:3;invalidate-regs:1,16,26,36,3a;#00 > $qRegisterInfo2#74 > $name:rcx;alt-name:arg4;bitsize:64;offset:16;encoding:uint;format:hex;set:General > Purpose > Registers;gcc:2;dwarf:2;generic:arg4;invalidate-regs:2,17,27,37,3b;#00 > $qRegisterInfo3#75 > $name:rdx;alt-name:arg3;bitsize:64;offset:24;encoding:uint;format:hex;set:General > Purpose > Registers;gcc:1;dwarf:1;generic:arg3;invalidate-regs:3,18,28,38,3c;#00 > $qRegisterInfo4#76 > $name:rdi;alt-name:arg1;bitsize:64;offset:32;encoding:uint;format:hex;set:General > Purpose Registers;gcc:5;dwarf:5;generic:arg1;invalidate-regs:4,19,29,3d;#00 > $qRegisterInfo5#77 > $name:rsi;alt-name:arg2;bitsize:64;offset:40;encoding:uint;format:hex;set:General > Purpose Registers;gcc:4;dwarf:4;generic:arg2;invalidate-regs:5,1a,2a,3e;#00 > $qRegisterInfo6#78 > $name:rbp;alt-name:fp;bitsize:64;offset:48;encoding:uint;format:hex;set:General > Purpose Registers;gcc:6;dwarf:6;generic:fp;invalidate-regs:6,1b,2b,3f;#00 > $qRegisterInfo7#79 > $name:rsp;alt-name:sp;bitsize:64;offset:56;encoding:uint;format:hex;set:General > Purpose Registers;gcc:7;dwarf:7;generic:sp;invalidate-regs:7,1c,2c,40;#00 > $qRegisterInfo8#7a > $name:r8;alt-name:arg5;bitsize:64;offset:64;encoding:uint;format:hex;set:General > Purpose Registers;gcc:8;dwarf:8;generic:arg5;invalidate-regs:8,1d,2d,41;#00 > $qRegisterInfo9#7b > $name:r9;alt-name:arg6;bitsize:64;offset:72;encoding:uint;format:hex;set:General > Purpose Registers;gcc:9;dwarf:9;generic:arg6;invalidate-regs:9,1e,2e,42;#00 > $qRegisterInfoa#a3 > $name:r10;bitsize:64;offset:80;encoding:uint;format:hex;set:General > Purpose Registers;gcc:10;dwarf:10;invalidate-regs:a,1f,2f,43;#00 > $qRegisterInfob#a4 > $name:r11;bitsize:64;offset:88;encoding:uint;format:hex;set:General > Purpose Registers;gcc:11;dwarf:11;invalidate-regs:b,20,30,44;#00 > $qRegisterInfoc#a5 > $name:r12;bitsize:64;offset:96;encoding:uint;format:hex;set:General > Purpose Registers;gcc:12;dwarf:12;invalidate-regs:c,21,31,45;#00 > $qRegisterInfod#a6 > $name:r13;bitsize:64;offset:104;encoding:uint;format:hex;set:General > Purpose Registers;gcc:13;dwarf:13;invalidate-regs:d,22,32,46;#00 > $qRegisterInfoe#a7 > $name:r14;bitsize:64;offset:112;encoding:uint;format:hex;set:General > Purpose Registers;gcc:14;dwarf:14;invalidate-regs:e,23,33,47;#00 > $qRegisterInfof#a8 > $name:r15;bitsize:64;offset:120;encoding:uint;format:hex;set:General > Purpose Registers;gcc:15;dwarf:15;invalidate-regs:f,24,34,48;#00 > $qRegisterInfo10#a3 > $name:rip;alt-name:pc;bitsize:64;offset:128;encoding:uint;format:hex;set:General > Purpose Registers;gcc:16;dwarf:16;generic:pc;#00 > $qRegisterInfo11#a4 > $name:rflags;alt-name:flags;bitsize:64;offset:136;encoding:uint;format:hex;set:General > Purpose Registers;generic:flags;#00 > $qRegisterInfo12#a5 > $name:cs;bitsize:64;offset:144;encoding:uint;format:hex;set:General > Purpose Registers;#00 > $qRegisterInfo13#a6 > $name:fs;bitsize:64;offset:152;encoding:uint;format:hex;set:General > Purpose Registers;#00 > $qRegisterInfo14#a7 > $name:gs;bitsize:64;offset:160;encoding:uint;format:hex;set:General > Purpose Registers;#00 > $qRegisterInfo15#a8 > $name:eax;bitsize:32;offset:0;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00 > $qRegisterInfo16#a9 > $name:ebx;bitsize:32;offset:8;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00 > $qRegisterInfo17#aa > $name:ecx;bitsize:32;offset:16;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00 > $qRegisterInfo18#ab > $name:edx;bitsize:32;offset:24;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00 > $qRegisterInfo19#ac > $name:edi;bitsize:32;offset:32;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00 > $qRegisterInfo1a#d4 > $name:esi;bitsize:32;offset:40;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00 > $qRegisterInfo1b#d5 > $name:ebp;bitsize:32;offset:48;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00 > $qRegisterInfo1c#d6 > $name:esp;bitsize:32;offset:56;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00 > $qRegisterInfo1d#d7 > $name:r8d;bitsize:32;offset:64;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00 > $qRegisterInfo1e#d8 > $name:r9d;bitsize:32;offset:72;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00 > $qRegisterInfo1f#d9 > $name:r10d;bitsize:32;offset:80;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00 > $qRegisterInfo20#a4 > $name:r11d;bitsize:32;offset:88;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00 > $qRegisterInfo21#a5 > $name:r12d;bitsize:32;offset:96;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00 > $qRegisterInfo22#a6 > $name:r13d;bitsize:32;offset:104;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00 > $qRegisterInfo23#a7 > $name:r14d;bitsize:32;offset:112;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00 > $qRegisterInfo24#a8 > $name:r15d;bitsize:32;offset:120;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00 > $qRegisterInfo25#a9 > $name:ax;bitsize:16;offset:0;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00 > $qRegisterInfo26#aa > $name:bx;bitsize:16;offset:8;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00 > $qRegisterInfo27#ab > $name:cx;bitsize:16;offset:16;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00 > $qRegisterInfo28#ac > $name:dx;bitsize:16;offset:24;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00 > $qRegisterInfo29#ad > $name:di;bitsize:16;offset:32;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00 > $qRegisterInfo2a#d5 > $name:si;bitsize:16;offset:40;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00 > $qRegisterInfo2b#d6 > $name:bp;bitsize:16;offset:48;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00 > $qRegisterInfo2c#d7 > $name:sp;bitsize:16;offset:56;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00 > $qRegisterInfo2d#d8 > $name:r8w;bitsize:16;offset:64;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00 > $qRegisterInfo2e#d9 > $name:r9w;bitsize:16;offset:72;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00 > $qRegisterInfo2f#da > $name:r10w;bitsize:16;offset:80;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00 > $qRegisterInfo30#a5 > $name:r11w;bitsize:16;offset:88;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00 > $qRegisterInfo31#a6 > $name:r12w;bitsize:16;offset:96;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00 > $qRegisterInfo32#a7 > $name:r13w;bitsize:16;offset:104;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00 > $qRegisterInfo33#a8 > $name:r14w;bitsize:16;offset:112;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00 > $qRegisterInfo34#a9 > $name:r15w;bitsize:16;offset:120;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00 > $qRegisterInfo35#aa > $name:ah;bitsize:8;offset:1;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00 > $qRegisterInfo36#ab > $name:bh;bitsize:8;offset:9;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00 > $qRegisterInfo37#ac > $name:ch;bitsize:8;offset:17;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00 > $qRegisterInfo38#ad > $name:dh;bitsize:8;offset:25;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00 > $qRegisterInfo39#ae > $name:al;bitsize:8;offset:0;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00 > $qRegisterInfo3a#d6 > $name:bl;bitsize:8;offset:8;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00 > $qRegisterInfo3b#d7 > $name:cl;bitsize:8;offset:16;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00 > $qRegisterInfo3c#d8 > $name:dl;bitsize:8;offset:24;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00 > $qRegisterInfo3d#d9 > $name:dil;bitsize:8;offset:32;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00 > $qRegisterInfo3e#da > $name:sil;bitsize:8;offset:40;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00 > $qRegisterInfo3f#db > $name:bpl;bitsize:8;offset:48;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00 > $qRegisterInfo40#a6 > $name:spl;bitsize:8;offset:56;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00 > $qRegisterInfo41#a7 > $name:r8l;bitsize:8;offset:64;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00 > $qRegisterInfo42#a8 > $name:r9l;bitsize:8;offset:72;encoding:uint;format:hex;set:General Purpose > Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00 > $qRegisterInfo43#a9 > $name:r10l;bitsize:8;offset:80;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00 > $qRegisterInfo44#aa > $name:r11l;bitsize:8;offset:88;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00 > $qRegisterInfo45#ab > $name:r12l;bitsize:8;offset:96;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00 > $qRegisterInfo46#ac > $name:r13l;bitsize:8;offset:104;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00 > $qRegisterInfo47#ad > $name:r14l;bitsize:8;offset:112;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00 > $qRegisterInfo48#ae > $name:r15l;bitsize:8;offset:120;encoding:uint;format:hex;set:General > Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00 > $qRegisterInfo49#af > $name:fctrl;bitsize:16;offset:168;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4a#d7 > $name:fstat;bitsize:16;offset:170;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4b#d8 > $name:ftag;bitsize:8;offset:172;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4c#d9 > $name:fop;bitsize:16;offset:173;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4d#da > $name:fioff;bitsize:32;offset:175;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4e#db > $name:fiseg;bitsize:16;offset:179;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo4f#dc > $name:fooff;bitsize:32;offset:181;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo50#a7 > $name:foseg;bitsize:16;offset:185;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo51#a8 > $name:mxcsr;bitsize:32;offset:187;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo52#a9 > $name:mxcsrmask;bitsize:32;offset:191;encoding:uint;format:hex;set:Floating > Point Registers;#00 > $qRegisterInfo53#aa > $name:stmm0;bitsize:80;offset:195;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:33;dwarf:33;#00 > $qRegisterInfo54#ab > $name:stmm1;bitsize:80;offset:205;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:34;dwarf:34;#00 > $qRegisterInfo55#ac > $name:stmm2;bitsize:80;offset:215;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:35;dwarf:35;#00 > $qRegisterInfo56#ad > $name:stmm3;bitsize:80;offset:225;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:36;dwarf:36;#00 > $qRegisterInfo57#ae > $name:stmm4;bitsize:80;offset:235;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:37;dwarf:37;#00 > $qRegisterInfo58#af > $name:stmm5;bitsize:80;offset:245;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:38;dwarf:38;#00 > $qRegisterInfo59#b0 > $name:stmm6;bitsize:80;offset:255;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:39;dwarf:39;#00 > $qRegisterInfo5a#d8 > $name:stmm7;bitsize:80;offset:265;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:40;dwarf:40;#00 > $qRegisterInfo5b#d9 > $name:ymm0;bitsize:256;offset:275;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:17;dwarf:17;#00 > $qRegisterInfo5c#da > $name:ymm1;bitsize:256;offset:307;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:18;dwarf:18;#00 > $qRegisterInfo5d#db > $name:ymm2;bitsize:256;offset:339;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:19;dwarf:19;#00 > $qRegisterInfo5e#dc > $name:ymm3;bitsize:256;offset:371;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:20;dwarf:20;#00 > $qRegisterInfo5f#dd > $name:ymm4;bitsize:256;offset:403;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:21;dwarf:21;#00 > $qRegisterInfo60#a8 > $name:ymm5;bitsize:256;offset:435;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:22;dwarf:22;#00 > $qRegisterInfo61#a9 > $name:ymm6;bitsize:256;offset:467;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:23;dwarf:23;#00 > $qRegisterInfo62#aa > $name:ymm7;bitsize:256;offset:499;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:24;dwarf:24;#00 > $qRegisterInfo63#ab > $name:ymm8;bitsize:256;offset:531;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:25;dwarf:25;#00 > $qRegisterInfo64#ac > $name:ymm9;bitsize:256;offset:563;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:26;dwarf:26;#00 > $qRegisterInfo65#ad > $name:ymm10;bitsize:256;offset:595;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:27;dwarf:27;#00 > $qRegisterInfo66#ae > $name:ymm11;bitsize:256;offset:627;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:28;dwarf:28;#00 > $qRegisterInfo67#af > $name:ymm12;bitsize:256;offset:659;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:29;dwarf:29;#00 > $qRegisterInfo68#b0 > $name:ymm13;bitsize:256;offset:691;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:30;dwarf:30;#00 > $qRegisterInfo69#b1 > $name:ymm14;bitsize:256;offset:723;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:31;dwarf:31;#00 > $qRegisterInfo6a#d9 > $name:ymm15;bitsize:256;offset:755;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:32;dwarf:32;#00 > $qRegisterInfo6b#da > $name:xmm0;bitsize:128;offset:275;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:17;dwarf:17;container-regs:5b;#00 > $qRegisterInfo6c#db > $name:xmm1;bitsize:128;offset:307;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:18;dwarf:18;container-regs:5c;#00 > $qRegisterInfo6d#dc > $name:xmm2;bitsize:128;offset:339;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:19;dwarf:19;container-regs:5d;#00 > $qRegisterInfo6e#dd > $name:xmm3;bitsize:128;offset:371;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:20;dwarf:20;container-regs:5e;#00 > $qRegisterInfo6f#de > $name:xmm4;bitsize:128;offset:403;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:21;dwarf:21;container-regs:5f;#00 > $qRegisterInfo70#a9 > $name:xmm5;bitsize:128;offset:435;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:22;dwarf:22;container-regs:60;#00 > $qRegisterInfo71#aa > $name:xmm6;bitsize:128;offset:467;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:23;dwarf:23;container-regs:61;#00 > $qRegisterInfo72#ab > $name:xmm7;bitsize:128;offset:499;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:24;dwarf:24;container-regs:62;#00 > $qRegisterInfo73#ac > $name:xmm8;bitsize:128;offset:531;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:25;dwarf:25;container-regs:63;#00 > $qRegisterInfo74#ad > $name:xmm9;bitsize:128;offset:563;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:26;dwarf:26;container-regs:64;#00 > $qRegisterInfo75#ae > $name:xmm10;bitsize:128;offset:595;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:27;dwarf:27;container-regs:65;#00 > $qRegisterInfo76#af > $name:xmm11;bitsize:128;offset:627;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:28;dwarf:28;container-regs:66;#00 > $qRegisterInfo77#b0 > $name:xmm12;bitsize:128;offset:659;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:29;dwarf:29;container-regs:67;#00 > $qRegisterInfo78#b1 > $name:xmm13;bitsize:128;offset:691;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:30;dwarf:30;container-regs:68;#00 > $qRegisterInfo79#b2 > $name:xmm14;bitsize:128;offset:723;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:31;dwarf:31;container-regs:69;#00 > $qRegisterInfo7a#da > $name:xmm15;bitsize:128;offset:755;encoding:vector;format:vector-uint8;set:Floating > Point Registers;gcc:32;dwarf:32;container-regs:6a;#00 > $qRegisterInfo7b#db > $name:trapno;bitsize:32;offset:787;encoding:uint;format:hex;set:Exception > State Registers;#00 > $qRegisterInfo7c#dc > $name:err;bitsize:32;offset:791;encoding:uint;format:hex;set:Exception > State Registers;#00 > $qRegisterInfo7d#dd > $name:faultvaddr;bitsize:64;offset:795;encoding:uint;format:hex;set:Exception > State Registers;#00 > $qRegisterInfo7e#de > $E45#00 > > -- 杨勇勇 (Yang Yong-Yong)
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
