问题标签 [debugging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 调试时编辑源代码
我有 VS2005,目前正在尝试调试 ASP.net Web 应用程序。我想在文件后面的代码中更改一些代码,但是每次我停在断点并尝试编辑某些内容时,我都会收到以下错误消息:“当调试器已附加到已运行的进程时,不允许更改或者被调试的代码被优化。”
我很确定我启用了所有“编辑并继续”选项。有什么建议么?
visual-studio - x64 上的 x86 远程调试器服务
是否可以在 64 位机器上安装 x86 远程调试器即服务?我需要将调试器附加到会话 0 进程中的托管代码。该进程运行 32 位,但安装的调试器服务是 64 位,不会附加到 32 位进程。
我尝试使用 SC 命令创建服务,并且能够启动服务,并验证它是否在任务管理器进程中运行。但是,当我尝试使用 Visual Studio 连接到它时,它说远程调试器监视器未启用。当我停止 x86 服务并启动 x64 服务时,它能够找到监视器,但仍然出现错误。
这是我尝试使用远程调试器时的错误:无法附加到进程。64 位版本的 Visual Studio 远程调试监视器 (MSVSMON.EXE) 无法调试 32 位进程或 32 位转储。请改用 32 位版本。
这是我尝试在本地附加时出现的错误:此计算机不支持附加到不同终端服务器会话中的进程。尝试远程调试机器并在进程会话中运行 Microsoft Visual Studio 远程调试监视器。
如果我尝试将 32 位远程调试器作为应用程序运行,它将无法工作附加 b/c 远程调试器正在我的会话中而不是在会话 0 中运行。
c++ - 多线程调试器
在使用多线程(pthread)进行调试时,GDB 会出现严重问题。*nix 上是否还有其他适用于 C/C++ 的优秀多线程调试器?
eclipse-plugin - 是否有用于调试 Jython 的集成 Eclipse 插件?
JyDT是一个很好的 Jython Eclipse 插件。
但是,它不允许在 Debug 透视图中进行 Jython 调试。
Jython 提供了一个命令行调试器 (Pdb),但它在 Eclipse 之外运行。
c++ - 是否有适用于 Linux 的 C++ gdb GUI?
简而言之:是否有人知道 gdb 的 GUI 可以使其与您在最新版本的 Visual C++ 中获得的功能集相当或接近?
详细说明:作为一个在 Windows 中花费大量时间进行编程的人,每当我必须在 Linux 中编写 C++ 代码时,我发现的一个较大的绊脚石是使用命令行 gdb 调试任何东西所花费的时间比在Visual Studio,它似乎并没有通过实践变得更好。有些事情只是更容易或更快地以图形方式表达。
具体来说,我正在寻找一个 GUI:
- 处理所有基础知识,例如单步执行代码、监视变量和断点
- 理解并能显示复杂和嵌套的 C++ 数据类型的内容
- 在显示参数类型等相关信息的同时,不会被模板化代码和数据结构所迷惑,并且最好可以智能地单步执行
- 可以处理线程应用程序并在不同线程之间切换以单步执行或查看状态
- 除了在 gdb 中启动程序之外,还可以处理附加到已启动的进程或读取核心转储
如果不存在这样的程序,那么我想听听人们对至少满足某些要点的程序的体验。有人有什么建议吗?
编辑:
列出可能性很好,我会尽我所能,但如果你能在你的回复中包括它会更有帮助:
(a)你是否实际使用过这个 GUI,如果是这样,您对此有什么正面/负面的反馈。
(b) 如果您知道,上面提到的哪些功能是/不支持的
列表很容易获得,这样的网站很棒,因为您可以了解人们使用应用程序的个人体验。
c++ - 哪个是帮助教授编程的最佳 Linux C/C++ 调试器(或 gdb 的前端)?
我向新手教授一种“精简版”C++ 编程课程(“精简版”意味着没有指针、没有类,只是普通的旧 C,加上引用和 STL 字符串和向量)。学生之前没有编程经验,所以我相信使用交互式调试器可以帮助他们理解程序流程、变量和递归。
该课程在 Linux 中教授。教他们使用 gdb 只是矫枉过正(他们不会使用或理解大多数功能)。我只需要一些简单但易于使用的东西:查看程序现在在哪一行,堆栈中有什么(局部变量,以前的调用等)。我看起来类似于旧的 Turbo Pascal 或 Turbo C++ Borland 的调试器或 Visual Studio 调试器。
谢谢,
c++ - 为什么我不能在 VS.NET 调试器中单步执行剪贴板代码?
理想情况下,读者已将本机 C++ 程序升级到 Visual Studio 2008,其中包含一个 OpenClipboard() 块。为什么不尝试在从 OpenClipboard() 获得成功的返回码并单步执行代码之后设置断点。根据互联网,它可能适用于您的系统,但当然,不适用于我的系统,感谢您的尝试。
谷歌搜索例如 (( OpenClipboard 1418 vc6 )) 会发现诸如“GetClipboardData 在调试器中失败”和“在 VC++6 中没有错误但在 VC++2005 中出错”之类的文章。目前实用,问题已解决 - 我根本无法在此类代码中设置断点,我需要存储信息并在剪贴板操作完成后设置断点。错误 1418 是“线程没有打开剪贴板”,但只要您不使用 VS.NET,它就可以正常工作,或者就像我说的,如果您将断点保留在剪贴板打开关闭块之外。
知道 VS.NET 调试器的确切问题是什么,我会感觉更好。
作为一个 C++ 人,我只是模糊地意识到在做 dot-Net 时你不应该考虑线程。无论如何,当您单步通过本机 C++ 代码时,我没有找到真正发生的事情的大师级解释,事实上问题是否在于 dot-Net 调试器以某种方式巧妙地干扰了线程信息。
系统方面:大约一年前,两个双核 Xeon,根据 XP-pro 的 4 个 CPU。我刚刚通过在 XP-SP2-32 位下的 vc6 中单步调试代码。所以我知道代码在 vc6 下非常好。但是,当我使用 10 兆字节的 CF_TEXT 进行测试时,我遇到了异常。我想尝试在 XP-x64 更好的异常模型下调试。
用visual-studio-2008重新编译,我根本无法让代码单步运行。OpenClipboard 工作,但 EnumClipboardFormats() 没有工作,单步时没有任何工作。但是,当我在完整的代码块下方设置断点时,一切正常。YES vc2008 对 szBuf 周围的堆栈帧损坏进行了精确诊断。vc2008 有很多值得喜欢的地方。如果这只是一个剪贴板问题,那就太好了 - 不知道我会被迫担心通过任何事情,线程上下文问题是否可能是由于 dot-Net-debugger。
php - 在 OS X 上进行 PHP 调试 - 没希望了?
我试过了:
- Xdebug 和 Eclipse。Eclipse 启动 Web 浏览器,但浏览器尝试访问 Eclipse 的 .app 包中不存在的文件。
- Xdebug 和 NetBeans。它做得更好一点;浏览器在 /tmp 中打开一个页面,上面写着“正在启动。请稍候……”但除此之外什么都没有发生。
- Xdebug 和 debugclient,Xdebug 自带的 CLI 工具。MacPorts(我用来安装 PHP 和 Xdebug)似乎没有自己安装它,当我尝试手动编译它时,我被告知“你有奇怪的 libedit”。通过 MacPorts 安装 libedit 并不能解决这个问题。
- Zend 的调试器(确切的名称现在我不知道)和 Eclipse。我不记得问题是什么,因为这是前一段时间的问题,但它没有用。
关于 Xdebug,至少,我相当有信心我已经正确安装了它。它在 PHP 文件和php -i
CLI 中都显示为 phpinfo()。
如果有人设法在 Mac 上以某种方式进行 PHP 调试,如果您能与我分享如何做,我将不胜感激。乱扔垃圾的代码var_dump($foo);die();
很快就会变老。如果不使用像 Eclipse 这样的过时软件编辑器或 Zend 想卖给我的昂贵的专有东西,就可以完成加分。
我的服务器正在通过 FastCGI 连接到 PHP,如果这会产生差异。
linux - 对于 Linux 系统有 gdb 的替代品吗?
请考虑商业和免费调试器。还想看看每个人的利弊。
visual-studio-2008 - Visual Studio 2008 中的 Unicode 调试可视化工具
Visual Studio 2008 中是否有 unicode 调试可视化工具?我有一个 xml 文件,我很确定它是 unicode 格式的。当我在写字板中打开它时,它会正确显示日文字符。当我使用 File.ReadAllText (UTF8) 将文件读入字符串时,所有日文字符都在字符串可视化器中显示为块。如果我使用 xml 可视化工具,字符会正确显示。