首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VS 2012 C++:我可以使用源代码而不是符号进行调试吗?

问VS 2012 C++:我可以使用源代码而不是符号进行调试吗?
EN

Stack Overflow用户
提问于 2013-02-19 04:57:54
回答 1查看 148关注 0票数 0

我目前正在为NodeJS编写一个本机扩展。这基本上是一个动态链接库,当您请求它时,NodeJS将加载它。

我将VS2012附加到节点进程。我想调试Node执行加载的代码。

我有节点的.cc和.h文件,但找不到.pdb文件。如何在Node源码中设置断点?

更新:我有一个node.lib文件。它能替代pdb吗?

更新2:无关,但对于任何专门调试NodeJS的人来说,Node实际上提供了一个pdb,可以在http://nodejs.org/dist/v0.8.22/node.pdb上找到(将版本号替换为您正在寻找的任何版本)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 05:05:40

如果没有将实际源代码与程序集代码相关联的方法,则无法从源代码进行调试。您需要一个pdb文件。

这样想:任何编译器都可以生成代码,即使VS2012编译器生成了代码,VS也无法对所有代码生成阶段进行逆向工程,以了解特定汇编命令属于哪一行源码。而且使用内联之类的,它甚至增加了任务的难度。

因此,任何调试器在没有调试符号的情况下都无法进行调试,因此无法将汇编语义转换为更高级别的语言语义(在编译过程中会丢失结构化信息)。否则,静态分析工具将非常容易编写。

编辑:.lib文件也不包含调试信息,只包含链接到该文件的必要信息。所以你也不走运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14945148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档