实际加载pdb文件的时间
When are pdb files actually loaded
在Visual Studio中执行"调试"生成时,它会输出一个pdb文件,以便在发生异常时获得详细信息。
pdb文件中的信息是在运行可执行文件时实际加载的,还是在异常发生时加载的?
IDA等解压缩程序在分析可执行文件时加载符号文件,或者当您告诉它用可执行文件加载特定符号时,只要它与当前正在调试的可执行文件匹配。
Visual Studio调试器等调试器在开始调试时加载PDB文件和符号,而不是在发生异常时加载。
PDB文件上的MSDN页面进一步强调了这一点:
Visual Studio调试器使用该项目。由创建的PDB文件链接器,并将PDB的绝对路径嵌入EXE或DLL文件。如果调试器在该位置找不到PDB文件,或者如果路径无效(例如,如果项目被移动到另一台计算机)、调试器搜索包含EXE的路径,在解决方案的属性页中指定的符号路径(公用属性文件夹,调试符号文件页面)。调试器不会加载与正在调试的二进制文件不匹配的PDB。
当然,如果程序是在没有/debug的情况下编译的,则PDB文件的路径将不会包含在生成的exe或DLL中。
是的,它们是在VS之外加载的。如果你的代码在加载PDB时崩溃,你会看到源代码的位置和行号。
相关文章:
- 从文本文件中读取时钟时间和事件时间并进行处理
- Levenshtein 两个文件的距离花费了太多时间
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 如何将消息时间戳写入日志文件?
- Chilkat SFTP 文件修改时间不与上传更新
- 如何在 Windows 上的 C++ 中根据文件的修改时间读取目录中的文件
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 测量任何 Windows 可执行文件的内存使用情况和执行时间
- std::fstream 需要很长时间才能将大数据写入.csv文件中
- 如何减少编译时间:在包含未触及的头文件的情况下
- 当字节在文件上写入0时,是否可以保持写作时间稳定
- C++ 如何使用字符串中保存的文件路径创建带时间戳的目录
- 使用LTO静态链接的可执行文件(链接时间优化):如何使用以前构建的库进行制作
- 将时间戳添加到文本文件中的空行中
- 如何使用C 根据当前时间自动生成新的CSV文件
- 我可以让QT到概要文件插槽执行持续时间吗?
- 当该应用程序中加速文件的最后一个修改时间发生更改时,如何重新启动应用程序
- C++:读取.BMP文件时出现问题;文件结束时间早于预期
- 如何从一段时间开始打开和关闭文件