0

アクティブな X オブジェクトを作成して関数を呼び出す短い JScript があります。そのアクティブな X オブジェクトは C++ で記述されています。コマンドを実行すると、cscript scriptName.js //XVS2012 がデバッグ モードで起動します。デバッガーをアタッチしようとするよりも、ご存知のように、デバッガーは既にアタッチされています。

デバッガーを再接続する方法や、何らかの方法で接続する方法はありますか?

私の現在の解決策は、JScript を使用せず、C++ からコードを呼び出すことです。

4

1 に答える 1

1

Visual Studio と WinDBG のどちらのデバッガーを使用しますか? JavaScript コードと C++ コードの両方を同時にデバッグする必要がありますか?

後者が問題ではなく、C++ コードに集中したい場合は、Visual Studio (または WinDBG) で cscript.exe を /x フラグなしでデバッグします。アタッチする必要もなく、Visual Studio から F5 でデバッグを開始できます。

  1. Visual Studio (2008、2010、または 2012 - すべて動作) で、ActiveX プロジェクト (C++ プロジェクト) を右クリックします。
  2. 移動: 構成プロパティ -> デバッグ
  3. コマンドに cscript のフル パスを入力します: C:\Windows\System32\cscript.exe
  4. コマンド引数に、JS ファイルのフル パスを入力します。
  5. ActiveX コード (dllmain、または COM オブジェクトのコンストラクター) にブレーク ポイントを配置します。
  6. F5を押します
  7. Visual Studio は、cscript のシンボルがないことを訴えます。それで大丈夫です。立ち止まるな。
  8. ブレークポイントに到達します

考慮すべき点:

  1. Microsoft シンボルを含めるようにシンボル パスを設定します。このようにして、コードを呼び出す関数の名前が表示されます (oleaut32.dll など)。

また、これがデフォルトですが、次のことを確認してください。

  1. 同じプロパティ ボックスのデバッガーの種類は、Native または Auto のいずれかになります。
于 2013-01-21T06:20:40.160 に答える