我正在使用带有地址清理选项的GCC 4.8.1,即我正在使用-fsanitize=address
进行编译和链接。有了这个旧版本,GCC不提供值得输出。它需要一个符号化器。在较新版本上无需额外的应用程序。我无法在目标计算机上安装LLVM软件包,所以我的问题是:是否可以脱机执行分析?我的意思是:我可以从目标机器获取输出,然后使用开发机器上的符号器分析结果吗?
您可以将已清理的可执行文件的未符号化输出管道传输到目标或开发计算机上的asan_symbolize script。
请注意,默认情况下,asan_symbolize
会尝试在运行它的计算机上的可执行文件中查找符号。如果目标和开发可执行文件不匹配,则需要使用-s
标志来指定目标sysroot。