Debugging gdb不透明符号分辨率已关闭

Debugging gdb不透明符号分辨率已关闭,debugging,gdb,compiler-optimization,debug-symbols,Debugging,Gdb,Compiler Optimization,Debug Symbols,启用过程间分析优化(编译器标志)时,结构调试符号(不透明符号解析)不起作用。有人知道为什么吗?是否可以启用此优化,但不丢失此方便的调试功能 typedef struct mystruct { int a; char b; } mystruct_t; 如果未启用ipa (gdb) p /x global_var $1 = {a = 0xdeadbeef, b = 0xa} (gdb) p /x global_var $1 = 0xdeadbeef 启用ipa后 (gdb) p /x

启用过程间分析优化(编译器标志)时,结构调试符号(不透明符号解析)不起作用。有人知道为什么吗?是否可以启用此优化,但不丢失此方便的调试功能

typedef struct mystruct {
  int a;
  char b;
} mystruct_t;
如果未启用ipa

(gdb) p /x global_var
$1 = {a = 0xdeadbeef, b = 0xa}
(gdb) p /x global_var
$1 = 0xdeadbeef
启用ipa后

(gdb) p /x global_var
$1 = {a = 0xdeadbeef, b = 0xa}
(gdb) p /x global_var
$1 = 0xdeadbeef

是否实际使用了
b
字段?编译器可能已经创建了一个专门版本的
mystruct
,它只是一个
int
。是的,它被使用了。问题是关于使用ipa编译器标志去除调试符号。是否实际使用了
b
字段?编译器可能已经创建了一个专门版本的
mystruct
,它只是一个
int
。是的,它被使用了。问题是如何使用ipa编译器标志去除调试符号。