如何使用i686-w64-mingw32-c++编译带调试信息的程序?
如何用i686-w64-mingw32-c++生成带调试信息的程序
你使用的-debug并非MinGW-w64编译器(基于GCC)的标准调试选项,所以不会产生任何效果。要生成带调试信息的可执行文件,需使用GCC体系的调试参数:
基础调试信息生成:使用
-g参数,这会生成适配本地调试器的标准调试信息(MinGW-w64默认会生成对应平台的调试格式,如DWARF或PE格式)。示例编译命令:i686-w64-mingw32-c++ -g your_program.cpp -o your_program.exe更详细的调试信息:若需要包含宏定义、完整符号表等更多细节,可使用
-g3参数,它提供比-g更丰富的调试数据:i686-w64-mingw32-c++ -g3 your_program.cpp -o your_program.exe指定调试信息格式:如果需要针对特定调试器适配格式,可追加格式指定参数,比如针对旧版调试器的
-gstabs,或指定DWARF版本的-gdwarf-2:i686-w64-mingw32-c++ -gdwarf-2 -g your_program.cpp -o your_program.exe
额外注意:编译时尽量避免使用-O1、-O2这类优化参数,代码优化会改变执行流程、消除变量,导致调试时无法正确对应源码行或查看变量。如果需要兼顾少量优化和调试,可使用-Og参数,这是专门为调试场景设计的优化选项,会保留调试所需的关键信息。
内容的提问来源于stack exchange,提问作者Davide
相关产品推荐
相关产品推荐

