原因:当前调试的程序和工作目录中的符号表pdb不匹配
符号表.pdb与断点调试
符号表是将编译链接后生成的可执行文件(.exe)和源码做出的一个映射表,其中存储的是全局变量、函数的名字和地址;局部变量的名字和堆栈偏移;class、struct数据的数据类型定义;源码文件名和行数等信息,断点的时候能够通过这个表找到当前运行到的binary对应的源码位置。
知道了原因,解决方案就是
解决:保证当前工作目录下的符号表和当前调试的进程是同一套即可
特别是attach到进程上的调试方式,需要找到正确的进程
查看工作目录
解决方案资源管理器-》右键单击项目-》属性-》调试:
查看当前加载的符号表
开启调试-》调试-》窗口-》模块(或热键Ctrl+Alt+u
)
在“符号文件”列(symbol file)中可以看到当前加载的符号文件