2013-01-21 44 views
1

我有一個簡短的JScript,它創建一個活動的X對象並調用一個函數。該活動的X對象是用C++編寫的。當我運行命令cscript scriptName.js //X時,我在調試模式下啓動VS2012。比我試圖附加一個調試器,但你知道一個已經連接。調試器已連接 - cscript

有沒有辦法重新附加調試器或連接到它一些如何?

我目前的解決方案是不使用JScript並從C++調用代碼。

回答

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. Hit F5
  7. Visual Studio會抱怨缺少cscript的符號。沒關係。繼續。
  8. 你會打你的斷點

一些角度來考慮:

  1. 設置符號路徑包括微軟符號。這樣,你會看到調用你的代碼的函數的名字(oleaut32.dll和朋友)。

而且,這是默認的,但要確保:

  1. 在同一個屬性框中鍵入調試器將是天然的或自動。
+0

當我開始調試它說「cscript.exe未在[PCNAME]上運行」 – qballer

+0

@ qballer它不應該。你確定你正在運行cscript而沒有'// x'標誌嗎? – Uri

+0

是的,我確定。仍然無法附加。 – qballer