2013-02-18 82 views
0

我目前正在爲NodeJS編寫本機擴展。這基本上是NodeJS在你請求時加載的一個dll。VS 2012 C++:我可以使用源代替符號來調試嗎?

我有連接到節點過程VS2012。我想調試到加載的Node代碼。

我有.CC和.h文件節點,但目前還沒有,我可以找到.pdb文件。如何在節點源中設置斷點?

更新:我有一個node.lib文件。那可以代替pdb嗎?

更新2:切線,但對於任何專門調試NodeJS的人,Node實際上都會發送一個pdb,可在http://nodejs.org/dist/v0.8.22/node.pdb(用您正在查找的任何版本替換版本號)。

+1

如果你有來源,你爲什麼不建立自己的NodeJS與* *調試符號和使用? – us2012 2013-02-18 21:06:32

+0

這當然是一種選擇。似乎更難,我會喜歡,但我想如果有必要這樣做。謝謝! – 2013-02-18 21:07:39

回答

1

沒有辦法涉及實際的源代碼,彙編代碼,你不能從源代碼調試。你需要一個pdb文件。

想想那樣:任何編譯器都可以生成代碼,即使VS2012編譯器生成了代碼,VS也無法逆向設計所有代碼生成階段,以瞭解特定彙編命令的源代碼行所屬。在內聯等情況下,它甚至給任務增加了更多的難度。

因此,任何調試器不能沒有調試符號調試,它僅僅是不可能的裝配語義扭轉成高級語言的語義(你輸在編譯過程中結構信息)。否則,靜態分析工具將非常容易編寫。

編輯:的.lib文件不包含調試信息或者,只是必要的信息,以防止其鏈接。所以你也是運氣不好。

+0

具有完美的感覺。更新了問題 - .lib能否替換這些符號? – 2013-02-18 21:09:42

+0

更新了我的答案。不幸的是它沒有幫助,你真的需要pdb。由於你有源代碼,只需構建它,你就可以得到pdb文件。 – Mic 2013-02-18 21:12:53

相關問題