目前,我无法通过GCC禁用优化。
是否存在一些像objdump,readelf等工具可以帮助我找到值优化的数组地址?
如果我成功,我可以使用GDB将值转储到数组中。
答案 0 :(得分:1)
如果它是一个静态数组你可以使用一个地图文件:让gcc生成它(使用-Wl,-Map,mymapfile.map)并查找地址(不熟悉gcc地图文件,但该地址)通常是相对于加载二进制文件的地址。否则,如果它在堆上分配,请在malloc中使用断点,检查何时调用它后面的数组大小并检查它返回的指针。或者在两种情况下,正如Alex在评论中指出的那样:检查反汇编中的地址。