Next: DBX Options, Up: Debugging Info
这些宏影响所有的调试格式。
一个C表达式,返回编译器寄存器号regno的DBX寄存器号。 在提供的缺省宏中,该表达式的值将为regno本身。 但是有时候,有些寄存器编译器知道但是DBX不知道,或者相反。 对于这种情况,寄存器可能需要在编译器中具有一个编号, 而在DBX中具有另一个。
如果两个寄存器在GCC中具有连续的编号, 并且可以作为一对用来保存多字的值, 则它们在使用
DBX_REGISTER_NUMBER
重新编号之后 必须还具有连续的编号。 否则,调试器将无法访问这样的寄存器对, 因为调试器期望寄存器对在自己的编号方案下也是连续的。如果你发现自己定义的
DBX_REGISTER_NUMBER
不能保持寄存器对, 则必须重定义实际的寄存器编号方案。
一个C表达式,返回具有地址x(RTL表达式)的自动变量的整数偏移量。 缺省计算是假设x基于帧指针的,并会给出相对帧指针的偏移量。 这对于产生DBX调试输出或COFF风格的SDB调试输出, 并且在使用-g选项时也允许消除帧指针的目标,会有需要。
一个C表达式,返回当用户只指定-g时, GCC应该产生的调试输出类型。 如果你已经使得GCC支持多种调试输出格式的时候,则定义该宏。 目前,允许的值为
DBX_DEBUG
,SDB_DEBUG
,DWARF_DEBUG
,DWARF2_DEBUG
,XCOFF_DEBUG
,VMS_DEBUG
和VMS_AND_DWARF2_DEBUG
。当用户指定-ggdb时,GCC通常还使用该宏的值来选择调试输出格式, 但是有两个例外。如果定义了
DWARF2_DEBUGGING_INFO
, 则GCC使用值DWARF2_DEBUG
,如果定义了DBX_DEBUGGING_INFO
, 则GCC使用DBX_DEBUG
。该宏的值只影响缺省调试输出;用户总是可以通过使用-gstabs, -gcoff, -gdwarf-2, -gxcoff或-gvms来获得指定类型的输出。