GDB | DWARF expression | Extracting a range of bits from an 'xmm' register

vaibhav kurhe
Fri May 21 08:57:15 GMT 2021

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;
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

Please let me know, if you need any additional info.

Thanks & Regards,

More information about the Gdb mailing list