Displaying 3 results from an estimated 3 matches for "dw_op_constu_plus".
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...To compute the value, the debugger starts from a
register, goes to an offset, and loads a pointer, repeating the process
until it finds the value. As we proceed through codegen, we effectively
build up the chain.
1. To implement __block in Clang, we use dbg.declare(%block_descriptor,
DW_OP_deref, DW_OP_constu_plus $offset)
2. Assuming the block descriptor lived in an alloca (which it doesn't, but
assume it does for argument's sake), asan will move that alloca onto the
heap to implement use-after-return detection. It will prepend "DW_OP_deref,
DW_OP_constu, $offset" to the DIExpression.
3. I...
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...;> register, goes to an offset, and loads a pointer, repeating the process
>> until it finds the value. As we proceed through codegen, we effectively
>> build up the chain.
>>
>> 1. To implement __block in Clang, we use dbg.declare(%block_descriptor,
>> DW_OP_deref, DW_OP_constu_plus $offset)
>>
>
> Guessing it's the other way (constu_plus(offset), deref)? But in any
> case...
>
We'd have a deref if %block_descriptor was actually an alloca containing a
pointer, which is what I'm assuming for this example. Deref loads the
pointer, then we go to som...
2017 Sep 06
4
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
On Wed, Sep 6, 2017 at 10:01 AM, David Blaikie <dblaikie at gmail.com> wrote:
> On Tue, Sep 5, 2017 at 1:00 PM Reid Kleckner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> LLVM SSA values obviously do not have an address that we can take and
>> they don’t live in registers, so neither the default memory location model
>> nor DW_OP_regN make sense