10.18 RTL中的变量位置调试信息
变量跟踪(Variable tracking)依靠MEM_EXPR
和REG_EXPR
注解来确定所引用的用户变量内存和寄存器。
赋值语句中的变量跟踪只有当它们引用了在固定点活跃的变量(例如,可寻址变量,全局非自动变量)时,才使用这些注解。对于位置有变化的变量,其依靠下列类型的注解。
(var_location:
mode var exp stat)
-
绑定变量
var
,一个tree,到值exp,一个RTL表达式。其只出现在NOTE_INSN_VAR_LOCATION
和DEBUG_INSN
中,并且含义有些细微的差别。mode,如果存在,则表示exp的机器模式,这用于当其为一个无机器模式的表达式时。stat只在注解中有含义,表示变量是否已知为被初始化或者未被初始化。
(debug_expr:
mode decl)
-
表示绑定到
DEBUG_EXPR_DECL
decl上的值。