相关疑难解决方法(0)

如何找到全局静态初始化

我刚刚阅读了这篇出色的文章:http : //neugierig.org/software/chromium/notes/2011/08/static-initializers.html 然后我尝试了:https : //gcc.gnu.org/onlinedocs/gccint/Initialization .html

不过,它关于查找初始化程序的内容对我不起作用。该.ctors部分不可用,但我可以找到.init_array(另请参阅Can't find .dtors and .ctors in binary)。但是我如何解释输出?我的意思是,总结页面的大小也可以由size命令及其.bss列处理 - 或者我错过了什么?

此外,nm不报告任何*_GLOBAL__I_*符号,仅报告*_GLOBAL__N_*函数和 - 更有趣的 -_GLOBAL__sub_I_somefile.cpp条目。后者可能表示具有全局初始化的文件。但是我能以某种方式获得正在运行的构造函数列表吗?理想情况下,一个工具会给我一个列表

Foo::Foo in file1.cpp:12
Bar::Bar in file2.cpp:45
...
Run Code Online (Sandbox Code Playgroud)

(假设我有可用的调试符号)。有这样的工具吗?如果不是,那怎么写呢?该.init_array部分是否包含指向可以通过一些 DWARF 魔法转换为上述代码的指针?

c++ linux initialization global-variables binutils

6
推荐指数
1
解决办法
3198
查看次数

标签 统计

binutils ×1

c++ ×1

global-variables ×1

initialization ×1

linux ×1