【发布时间】:2015-04-29 06:28:40
【问题描述】:
我有以下代码示例:
Foo( "Test1" );
void Foo(const char* const i_Test )
{
// Some logic
}
Foo() 中的i_Test 指针持有指向.rodata section 中字符串的指针。
有没有办法在二进制文件中搜索i_Text指针值来找到相关的String?或者我可以使用gcc 生成任何包含该信息的调试信息吗?
【问题讨论】:
-
我以前从未见过双重的
const -
指针上的双常量:第一个常量禁止更改 i_Test 指向的值(例如 *i_Test='a'),第二个指针禁止更改指针本身(例如 ++i_Test)
-
谢谢,很高兴知道
-
@Yoav "第二个指针禁止..." prolly 的意思是"第二个 const 禁止..."
-
你能说明你想做什么吗?您是否正在寻找一种从内存中的位置 (i_Text) 到文件中的偏移量的方法?如果是这样,请在程序上运行时查看“readelf --sections”的输出......但是,请注意,除非您使用的是相当不寻常的配置,否则字符串“Test1”将不会存储在 .text 中,它可能会在 .rodata 中。