class CallSiteParameter

Defined at line 14 of file ../../src/developer/debug/zxdb/symbols/call_site_parameter.h

Represents a DW_TAG_call_site_parameter.

Public Methods

std::optional<uint32_t> location_register_num ()

The DWARF register number that corresponds to this location.

This corresponds to the decoded register number of the DW_AT_location of the call site

parameter. Theoretically, the DW_AT_location could specify any location in any way, but the

current compilers we support always output a single-byte operation of DW_OP_reg? to indicate

the register number.

More complex locations are not useful for call site parameters since the whole point is to

specify the registers upon function call. They could be expressed as "DW_OP_regx, <regnum>"

but currently compilers don't do that and the expression is longer anyway.

If we see more complex expressions, we should probably add a real VariableLocation here for

uniform evaluation rather than pushing more decode logic into the DwarfSymbolFactory. Perhaps

this class could have a helper to decode it.

Defined at line 30 of file ../../src/developer/debug/zxdb/symbols/call_site_parameter.h

const DwarfExpr & value_expr ()

The expression indicating the value of the location. This could be empty() if it's not

specified in the symbols.

Defined at line 34 of file ../../src/developer/debug/zxdb/symbols/call_site_parameter.h

Protected Methods

const CallSiteParameter * AsCallSiteParameter ()

Additional information is also supported by DWARF which we have no current need for. These can

be added as required:

DW_AT_call_data_location

DW_AT_call_data_value

DW_AT_call_parameter

DW_AT_name

DW_AT_type

Defined at line 46 of file ../../src/developer/debug/zxdb/symbols/call_site_parameter.h

Friends

class MakeRefCountedHelper
class RefCountedThreadSafe