0

我有一个简短的 JScript,它创建一个活动的 X 对象并调用一个函数。该活动 X 对象是用 C++ 编写的。当我运行命令时,cscript scriptName.js //X我以调试模式启动 VS2012。比我尝试附加一个调试器,但如您所知,已经附加了一个。

有没有办法重新连接调试器或以某种方式连接到它?

我目前的解决方案是不使用 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 回答