Next: , Previous: File Names and DBX, Up: Debugging Info


17.22.5 用于SDB和DWARF输出的宏

这些是用于SDB和DWARF输出的宏。

— Macro: SDB_DEBUGGING_INFO

定义该宏,如果对于-g选项,GCC应该为SDB产生COFF风格的调试输出。

— Macro: DWARF2_DEBUGGING_INFO

定义该宏,如果对于-g选项,GCC应该产生dwarf本版2格式的调试输出。

— Target Hook: int TARGET_DWARF_CALLING_CONVENTION (tree function)

定义该钩子,使得为个函数输出dwarf属性DW_AT_calling_convention。 返回DW_CC_标记的enum值。

要支持可选的调用帧调试信息, 你必须还要定义INCOMING_RETURN_ADDR_RTX,并如果在序言中使用RTL, 则设置RTX_FRAME_RELATED_P,或者如果没有使用RTL, 则从TARGET_ASM_FUNCTION_PROLOGUE中调用dwarf2out_def_cfadwarf2out_reg_save

— Macro: DWARF2_FRAME_INFO

定义该宏为非0值,如果GCC应该总是输出Dwarf2帧信息。 如果DWARF2_UNWIND_INFO(参见Exception Region Output)为非0, 则GCC将不管你如何定义DWARF2_FRAME_INFO,都会输出该信息。

— Macro: DWARF2_ASM_LINE_DEBUG_INFO

定义该宏为非0值,如果汇编器能够生成Dwarf2行调试信息section。

— Target Hook: bool TARGET_WANT_DEBUG_PUB_SECTIONS

True if the .debug_pubtypes and .debug_pubnames sections should be emitted. These sections are not used on most platforms, and in particular GDB does not use them.

— Macro: ASM_OUTPUT_DWARF_DELTA (stream, size, label1, label2)

一条C语句,来输出汇编伪指令, 以创建一个lab1减去lab2的差,使用给定的size

— Macro: ASM_OUTPUT_DWARF_VMS_DELTA (stream, size, label1, label2)

A C statement to issue assembly directives that create a difference between the two given labels in system defined units, e.g. instruction slots on IA64 VMS, using an integer of the given size.

— Macro: ASM_OUTPUT_DWARF_OFFSET (stream, size, label, section)

一条C语句,来输出汇编伪指令, 以创建一个相对的section的给定label的引用, 使用给定的sizelabel为在给定section中定义的label

— Macro: ASM_OUTPUT_DWARF_PCREL (stream, size, label)

一条C语句,来输出汇编伪指令, 以创建一个给定label的引用,使用给定的size

— Macro: ASM_OUTPUT_DWARF_TABLE_REF (label)

A C statement to issue assembly directives that create a reference to the DWARF table identifier label from the current section. This is used on some systems to avoid garbage collecting a DWARF table which is referenced by a function.

— Target Hook: void TARGET_ASM_OUTPUT_DWARF_DTPREL (FILE *FILE, int size, rtx x)

如果定义,该target钩子为一个函数,其输出一个相对DTP的引用,对给定的TLS符号。

— Macro: PUT_SDB_...

定义这些宏来覆盖汇编语法,为特定的SDB汇编伪指令。 参见sdbout.c,关于这些宏和它们的参数的列表。 如果使用标准语法,你不需要定义它们。

— Macro: SDB_DELIM

一些汇编器不支持分号作为分隔符,即使在SDB汇编伪指令之间。 这种情况下,定义该宏为要使用的分隔符(通常为‘\n’)。 如果只需要改变该宏,则不需要定义新的PUT_SDB_op宏集合。

— Macro: SDB_ALLOW_UNKNOWN_REFERENCES

定义该宏以允许对未知结构体,联合体和枚举标记的引用,被输出。 标准的COFF不允许处理未知的引用,MIPS ECOFF支持该特定。

— Macro: SDB_ALLOW_FORWARD_REFERENCES

定义该宏以允许对未遇到的结构体,联合体和枚举标记的引用,被输出。 一些汇编器对此会出错。

— Macro: SDB_OUTPUT_SOURCE_LINE (stream, line)

一条C语句,输出当前源文件的行号的SDB调试信息在代码前。 缺省为输出一个.ln伪指令。