1. 无可用源问题
 

  • 进入项目的属性页 -> C/C++ -> 常规 -> 调试信息格式 -> 用于”编辑并继续“ 的程序数据库
     

     
  • 玄学, 把源码移除后,重新加载~ 是移除不是删除~~

 

2-1. release模式下生成pdb文件(vs2019)
 

  • 进入项目的属性页 -> 连接器 -> 调试 -> 生成调试信息 -> 生成调试信息(Debug)
     

     

2-2. release模式下生成pdb文件(CMakeLists)
 

 

#告诉编译器生成调试信息
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
#告诉链接器生成exe时加入调试信息
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
#告诉链接器生成dll时加入调试信息
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")

 

3. 调试dump

  • 把 pdb文件、exe、dump文件放一起
     
    第1次选 “Micosoft符号服务器”,下载非常慢, 之后选自己的缓存~~~
     

     

     

     
    注意:1. 如果是从服务器上拷贝过来的dump文件,本机路径要和服务器路径一样,不然可能无法定位代码
     
     
     
    注意:2. 有时不会直接跳转到自己的源码,可以通过堆栈信息定位上去,找到自己的源码位置
posted on 2022-08-09 11:11  残月影歌  阅读(1206)  评论(0编辑  收藏  举报