标签: debugging

如何调试堆损坏错误?

我在Visual Studio 2008下调试一个(本机)多线程C++应用程序.在看似随机的场合,我得到一个"Windows触发了一个断点......"错误,并注意到这可能是由于堆.这些错误并不会立即使应用程序崩溃,尽管它很可能会在之后崩溃.

这些错误的一个大问题是它们只在实际发生损坏后弹出,这使得它们很难跟踪和调试,尤其是在多线程应用程序上.

  • 什么样的事情会导致这些错误?

  • 我该如何调试它们?

提示,工具,方法,启发......欢迎.

c++ windows debugging heap

162
推荐指数
8
解决办法
17万
查看次数

Visual Studio加载符号

我现在正在研究一个ColdFusion项目,至少Visual Studio开始对我来说很奇怪.

我观察到,当我开始调试时,它构建了项目,它开始部署,部署完成,它开始为我的项目加载符号.

但它很慢,我不知道为什么它开始这一步.我可以做些什么?

这个符号加载步骤是否必要?我该如何禁用它?

在工具 - >选项 - >调试 - >符号对话框中,没有添加符号文件(.pdb)位置.我在下面的字段中指出了我项目的调试目录,并选中了"仅当符号为......时才搜索上面的目录"复选框.如何设置此对话框以关闭符号加载?

我查看了模块窗口中加载了哪些符号,但它对我没有任何说明.问题是什么?

在此输入图像描述

debugging debug-symbols visual-studio

162
推荐指数
8
解决办法
16万
查看次数

调试器如何工作?

我一直想知道调试器是如何工作的?特别是可以"附加"到已经运行的可执行文件的那个.我理解编译器会将代码转换为机器语言,但是调试器如何"知道"它附加到什么?

debugging internals

160
推荐指数
6
解决办法
4万
查看次数

在Eclipse中调试时查看完整的字符串

在调试Java代码时,视图"变量"和"表达式"中的字符串仅显示一定长度,之后Eclipse显示"..."

有没有办法检查整个字符串?(这减轻了添加日志语句以进行调试的痛苦)

java eclipse debugging

159
推荐指数
4
解决办法
6万
查看次数

当char*x指向一个值等于"hello"的字符串时,如何在gdb中设置条件断点?

char* x指向值等于的字符串时,是否可以指定我希望gdb在第x行中断"hello"?如果有,怎么样?

c debugging gdb conditional-breakpoint

159
推荐指数
3
解决办法
12万
查看次数

Visual Studio:如何打破处理的异常?

我希望Visual Studio在发生处理异常时中断(即我不只是想看到"第一次机会"消息,我想调试实际异常).

例如,我希望调试器在异常处中断:

try
{
   System.IO.File.Delete(someFilename);
}
catch (Exception)
{
   //we really don't care at runtime if the file couldn't be deleted
}
Run Code Online (Sandbox Code Playgroud)

我遇到了Visual Studio.NET的这些笔记:

1)在VS.NET中进入Debug菜单>>"Exceptions ...">>"Common Language Runtime Exceptions">>"System"并选择"System.NullReferenceException"

2)在该对话框的底部有一个"当抛出异常时:"组框,选择"进入调试器"

3)运行您的方案.抛出异常时,调试器将停止并通过一个对话框通知您,类似于:"抛出类型"System.NullReferenceException"的异常.[Break] [Continue]"

点击[休息].这将使您处于导致问题的代码行.

但它们不适用于Visual Studio 2005(" 调试"菜单上没有" 例外"选项).

有谁知道在Visual Studio中找到这个选项对话框中的" 当抛出异常时 "组框,并选择" 进入调试器 "?

更新:问题是我的调试菜单没有Exceptions项.我自定义菜单以手动添加它.

debugging exception visual-studio

157
推荐指数
5
解决办法
10万
查看次数

如何在PHP中调试变量如PHP中的var_dump()

我在模板中有一些变量,我不知道我在哪里分配它们.我需要知道特定变量中的内容; 例如,假设我在smarty中有一个变量叫member.我试过{debug}但它没有用,也没有显示弹出窗口.

如何使用var_dump()模板内部的东西输出/调试智能变量?

php debugging templates smarty

157
推荐指数
6
解决办法
22万
查看次数

Xcode调试器不打印对象,并且不显示nil

尝试使用po <objectName>,但仅针对一个项目打印对象时,Xcode显示错误.

截图

错误:无法实现struct:变量<varName>的大小不同于ValueObject的大小在Execute中出错,无法PrepareToExecuteJITExpression

Xcode调试器还将所有对象显示为nil(self排除),如果不是(NSLog显示正确的输出,如图中所示).我不知道这个项目有什么问题.其他每个项目都运作良好.

知道它可能是什么?(清理项目没有效果.)

debugging xcode objective-c ios

157
推荐指数
9
解决办法
5万
查看次数

使用IPython逐步调试

根据我的阅读,有两种方法可以在Python中调试代码:

  • 使用传统的调试器,如pdbipdb.这支持诸如cfor continue,nfor step-over,sfor step-into等命令,但是你没有直接访问IPython shell,这对于对象检查非常有用.

  • 使用 IPython的通过嵌入代码中的一个IPython的壳.您可以这样做from ipython import embed,然后embed()在您的代码中使用.当您的程序/脚本命中一个embed()语句时,您将被放入一个IPython shell中.这允许使用所有IPython好东西对对象进行全面检查并测试Python代码.但是,在使用时,embed()您无法使用便捷的键盘快捷键逐步完成代码.

有没有办法结合两全其美?即

  1. 能够 使用方便的pdb/ipdb键盘快捷键逐步完成代码.
  2. 在任何此类步骤(例如,在给定语句上),都可以访问完整的IPython shell.

MATLAB中进行IPython调试:

这种类型的"增强调试"的一个例子可以在MATLAB中找到,用户总是可以完全访问MATLAB引擎/ shell,她仍然可以逐步完成代码,定义条件断点等.我与其他用户讨论的内容,这是人们在从MATLAB迁移到IPython时最想念的调试功能.

在Emacs和其他编辑器中进行IPython调试:

我不想让问题太具体,但我主要在Emacs工作,所以我想知道是否有任何方法可以将此功能纳入其中.理想情况下,Emacs(或编辑器)将允许程序员在代码的任何位置设置断点,并与解释器或调试器通信以使其停在您选择的位置,并在该位置引入完整的IPython解释器.

python debugging emacs ipython pdb

156
推荐指数
8
解决办法
9万
查看次数

如何在twig模板中使用var_dump变量?

查看图层模式,您只显示您所提供的内容,并且全部,但您如何知道可用的内容?TWIG中是否有"列出所有定义的变量"功能?有没有办法转储变量?

我通过搜索找到的解决方案是定义一个函数,我可以通过注入一个函数来使用我现有的php调试工具,但是我发现的所有引用都包含了这两行很好的代码,但是没有指定的地方在哪里放置它们.由于他们需要定义$ loader变量这一事实,我尝试了/app/config/autoload.php,但是那个$ loader是错误的.我在哪里放置PHP代码来添加树枝功能?

debugging twig

155
推荐指数
7
解决办法
16万
查看次数