我目前正在为NodeJS编写一个本机扩展。这基本上是一个动态链接库,当您请求它时,NodeJS将加载它。
我将VS2012附加到节点进程。我想调试Node执行加载的代码。
我有节点的.cc和.h文件,但找不到.pdb文件。如何在Node源码中设置断点?
更新:我有一个node.lib文件。它能替代pdb吗?
更新2:无关,但对于任何专门调试NodeJS的人来说,Node实际上提供了一个pdb,可以在http://nodejs.org/dist/v0.8.22/node.pdb上找到(将版本号替换为您正在寻找的任何版本)。
发布于 2013-02-19 05:05:40
如果没有将实际源代码与程序集代码相关联的方法,则无法从源代码进行调试。您需要一个pdb文件。
这样想:任何编译器都可以生成代码,即使VS2012编译器生成了代码,VS也无法对所有代码生成阶段进行逆向工程,以了解特定汇编命令属于哪一行源码。而且使用内联之类的,它甚至增加了任务的难度。
因此,任何调试器在没有调试符号的情况下都无法进行调试,因此无法将汇编语义转换为更高级别的语言语义(在编译过程中会丢失结构化信息)。否则,静态分析工具将非常容易编写。
编辑:.lib文件也不包含调试信息,只包含链接到该文件的必要信息。所以你也不走运。
https://stackoverflow.com/questions/14945148
复制相似问题