【发布时间】:2011-07-05 21:36:52
【问题描述】:
在我的 C++ 程序中,如何在运行时以编程方式检测符号是否已通过 Linux 上的“strip”gnu 开发工具剥离?
我想要一个函数定义,如果剥离返回 true,否则返回 false。
在“main()”上使用 dlsym() 是否可以可靠地检测到这一点?
【问题讨论】:
-
我不清楚为什么您需要知道可执行文件是否已被剥离。但是,无论您在运行时使用什么来处理可执行文件,都应该能够告诉您是否已剥离。
-
好奇为什么要在运行时检测到这个?
-
@Martin York 在执行应用程序时触发警报消息,以减少无意中将非剥离版本提供给客户的机会。
-
将这部分作为构建过程的一部分会更合适,这样您就不能将超出范围的应用程序发送给您的客户。
-
@Martin York 这是构建过程的一部分,但有时客户会出于调试或检查修复的临时目的而获得特殊构建。此类构建不适合长期生产使用,我们希望它们以编程方式自我识别。
标签: c++ symbols introspection strip dlsym