You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下如何使用PowerShell或命令提示符调试C++编译的.exe文件

解答

结论

完全可以通过PowerShell/命令提示符调试C编译的调试版exe,Windows官方提供了命令行调试工具cdb.exe(Console Debugger),和Visual Studio调试底层使用相同的引擎,完全支持调试调试模式编译的C程序。

前置准备

  • 确认你编译生成的.exe同目录下存在对应的.pdb符号文件(VS调试模式编译时会自动生成,是调试识别代码、变量的必要前提)
  • 确认你可以调用cdb.exe:安装Visual Studio时默认会同步安装Windows调试工具集,直接在PowerShell/CMD中输入cdb如果没有报命令不存在即可正常使用;如果提示找不到命令,到VS安装目录下的Windows Kits子目录搜索cdb.exe,将对应x86/x64版本的所在路径添加到系统Path环境变量即可。

调试Hello World示例

示例程序准备

假设你有如下C++代码,已经通过VS调试模式编译为HelloDemo.exe,同目录生成了HelloDemo.pdb:

#include <iostream>
int main() {
    int test_num1 = 10;
    std::cout << "Hello World!" << std::endl;
    int test_num2 = 20;
    int sum = test_num1 + test_num2;
    return 0;
}

调试操作步骤

  1. 打开PowerShell或者命令提示符,切换到HelloDemo.exe所在的文件夹
  2. 启动调试会话,输入命令:
cdb HelloDemo.exe

回车后会进入cdb的交互调试界面
3. 在main函数入口设置断点,输入命令后回车:

bp main

提示断点设置成功即可
4. 启动程序并运行到断点位置,输入命令后回车:

g

程序会启动并停在main函数的第一行代码处
5. 单步执行代码(步过,不进入函数内部),每输入一次命令执行一行代码:

p

连续执行2次p,即可运行完Hello World输出的代码行,此时你可以在控制台看到Hello World!的输出
6. 查看变量值,输入对应命令即可输出变量当前值:

// 查看test_num1的值
dv test_num1
// 执行到test_num2赋值后,查看test_num2的值
dv test_num2
// 执行到sum赋值后,查看sum的计算结果
dv sum
  1. 继续执行完剩余所有代码:
g

程序运行结束后会自动退出调试会话
8. 如需中途强制退出调试,输入命令后回车即可:

q

补充说明

  • 调试32位程序请使用x86版本的cdb.exe,调试64位程序请使用x64版本的cdb.exe,否则会出现符号不匹配的问题
  • 如果需要附加到已经在运行的exe进程调试,使用命令cdb -p <你的进程ID>即可
  • 所有cdb命令均支持在PowerShell和CMD中无差别使用

内容的提问来源于stack exchange,提问作者Mathematician

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 16:54:02