GDB | DWARF expression | Extracting a range of bits from an 'xmm' register
vaibhav kurhe via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAHKv1qvC6TGvJLz_=OQMu9Z9E5ohqKu4Uqu03330JOhgYHGNiw@mail.gmail.com> |
Hello all, For a use case, I am trying to build a DWARF expression which represents the value of an arbitrary range of bits (e.g. 96-127 bits) in an *128-bit xmm register* to be used as a *location attribute value* for a variable DIE. I am using GDB to consume the debug info and test it. Following is the expression I started with to test out a shift operation on an 128-bit xmm0 register using Typed DWARF stack :- *"DW_OP_GNU_regval_type: 21 (xmm0) <0x30>; DW_OP_GNU_const_type: <0x30> 16 byte block: 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; DW_OP_shl; DW_OP_stack_value"* But, while testing it in GDB, I got an error :- *"That operation is not available on integers of more than 8 bytes."* Could you please provide any suggestions/pointers on this? Am I missing something? Please let me know, if you need any additional info. Thanks & Regards, Vaibhav