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