windbg-A complete guide for Advanced Windows Debugging part1
6. Debugging a simple program_哔哩哔哩_bilibili
先用vs2022创建一个简单程序
根据看上面的录像,用的_tmain入口的程序,不是正常的main入口,这应该是用的向导生成的。
又有stdafx.h,这种需要预编译选项
生成了pch.h, 而不是stdafx.h, 查了一下,是因为vs2017开始,默认预编译头文件名称从stdafx.h更改为pch.h(Precompiled head的缩写),pch命名更符合现代C++标准,避免stdafx.h中隐含的“Standard Application Framework”历史包袱,尤其适合跨平台或非windows专有项目。看来改名用心良苦。
不过看视频用的VS2019,按说已经是pch.h了,估计作者培训多次,当年老的项目移植过来的。这个不重要,继续。
把录像中的代码录入:
char * 必须改为const char *, vs2022语法检查很严格,不错。
#include "pch.h"
#include <stdio.h>int main()
{//std::cout << "Hello World!\n";const char *p = "Hello World";printf(p);__asm int 3;return 0;
}
windbg打开exe,第一个断点不是上面的,是进入main之前的
g --go,继续执行
k --查看调用栈
windbg很强大,这是个开头。继续看录像吧。