0

現在、NodeJS のネイティブ拡張機能を作成しています。これは基本的に、要求時に NodeJS がロードする dll です。

NodeプロセスにVS2012を接続しています。ロードを行う Node のコードをデバッグしたい。

ノード用の .cc および .h ファイルがありますが、見つけることができる .pdb ファイルがありません。Node ソースにブレークポイントを設定するにはどうすればよいですか?

更新: node.lib ファイルがあります。それはpdbの代わりになりますか?

更新 2: 接線ですが、具体的に NodeJS をデバッグする人のために、Node は実際に pdb を出荷します。為に)。

4

1 に答える 1

1

実際のソース コードをアセンブリ コードに関連付ける方法がなければ、ソース コードからデバッグすることはできません。pdb ファイルが必要です。

VS2012 コンパイラがコードを生成したとしても、VS がすべてのコード生成フェーズをリバース エンジニアリングして、特定のアセンブリ コマンドがどのソース行に属しているかを知る方法はありません。また、インライン化などを使用すると、タスクがさらに難しくなります。

したがって、どのデバッガもデバッグ シンボルなしではデバッグできません。アセンブリ セマンティクスを高レベルの言語セマンティクスに逆にすることは不可能です (コンパイル プロセス中に構造情報が失われます)。そうでなければ、静的分析ツールは非常に簡単に作成できます。

編集: .lib ファイルにはデバッグ情報も含まれず、リンクするために必要な情報のみが含まれます。だからあなたも運が悪い。

于 2013-02-18T21:05:40.370 に答える