Tag: debugging

程序只发布版本崩溃 – 如何debugging?

我在这里有一个“Schroedinger的猫”types的问题 – 我的程序(实际上是我的程序的testing套件,但程序仍然)崩溃,但只有在释放模式下构build,只有从命令行启动。 通过穴居人debugging(即讨厌的printf()消息到处),我已经确定了代码崩溃的testing方法,但不幸的是,实际崩溃似乎发生在某个析构函数中,因为我看到的最后一条跟踪消息是其他干净地执行的析构函数。 当我尝试在Visual Studio中运行此程序时,它不会崩溃。 从WinDbg.exe启动时也一样。 从命令行启动时只会发生崩溃。 这是在Windows Vista下发生的,顺便说一下,不幸的是我现在无法访问XP机器来testing。 如果我能让Windows打印出一个堆栈跟踪,或者除了简单地终止程序,就好像它已经完全退出一样,那将是非常好的。 有没有人有任何意见,我怎么可以在这里得到一些更有意义的信息,并希望修复这个错误? 编辑:这个问题确实是由一个越界数组引起的, 我在这篇文章中更多描述了这个数组。 谢谢大家的帮助,find这个问题!

使用Chrome,如何find事件绑定到哪些元素?

假设我在我的页面上有一个链接: <a href="#" id="foo">Click Here</a> 我什么都不知道,但是当我点击这个链接时,会显示一个警告(“bar”)。 所以我知道在某个地方,一些代码被绑定到#foo。 我怎样才能find绑定警报(“酒吧”)的点击事件的代码? 我正在寻找与Chrome的解决scheme。 Ps:这个例子是虚构的,所以我没有寻找像“使用XXXXXX和search整个项目”alert(\“bar \”)“的解决scheme,我想要一个真正的debugging/跟踪解决scheme。

是否有一个内置函数来打印一个对象的所有当前属性和值?

所以我在这里找的是像PHP的print_r函数。 这样我就可以通过查看有问题的对象的状态来debugging我的脚本。

为什么console.log()认为比alert()更好?

我总是被告知,在debugging应用程序时,JavaScript的console.log()方法比单纯使用alert()方法更受欢迎。 为什么是这样? 有没有一个很好的例子,有人可以指出我在哪里console.log()显然是更好的select?

debugging在客户框中生成的核心文件

我们通过在客户的机器上运行我们的软件来获取核心文件。 不幸的是,因为我们一直使用-O2 进行编译而没有debugging符号,这导致了我们无法弄清楚为什么会崩溃的情况,我们修改了构build,现在他们生成了-g和-O2。 然后,我们build议客户运行-g二进制文件,以便更易于debugging。 我有几个问题: 从Linux发行版(而不是在Dev中运行的发行版)生成核心文件时会发生什么情况? 堆栈跟踪是否有意义? 有什么好的书籍可以在Linux或Solaris上进行debugging吗? 面向对象的例子会很棒。 我正在寻找真实的例子,找出为什么一个例程崩溃,作者如何解决问题。 从中级到高级的东西会更好,因为我已经这样做了一段时间了。 一些组装也会很好。 这是一个崩溃的例子,要求我们告诉客户得到一个-g版本。 的二进制文件: Program terminated with signal 11, Segmentation fault. #0 0xffffe410 in __kernel_vsyscall () (gdb) where #0 0xffffe410 in __kernel_vsyscall () #1 0x00454ff1 in select () from /lib/libc.so.6 … <omitted frames> 理想情况下,我想解决为什么确切的应用程序崩溃 – 我怀疑这是内存腐败,但我不是100%确定。 远程debugging是严格禁止的。 谢谢

如何在Chrome中debuggingHTTP POST?

我想查看在Chrome中发送的HTTP POST数据。 数据现在在内存中,我有能力重新提交表单。 我知道,如果我重新提交服务器会抛出一个错误,有没有反正我可以查看在Chrome的内存中的数据?

__FILE__,__LINE__和__FUNCTION__在C ++中的用法

假定你的C ++编译器支持它们,有什么特别的理由不为了logging和debugging目的而使用__FILE__ , __FUNCTION__ __LINE__和__FUNCTION__ ? 我主要关心的是如何给用户带来误导性的数据,例如,报告不正确的行号或function,作为优化的结果,或者导致性能下降。 基本上,我可以信任__FILE__ , __FUNCTION__ __LINE__和__FUNCTION__ 总是做正确的事情吗?

如何用gdb分析程序的核心转储文件?

我的程序像这样操作: exe -p param1 -i param2 -o param3 它崩溃并生成一个核心转储文件core.pid 我想通过分析核心转储文件 gdb ./exe -p param1 -i param2 -o param3 core.pid 但gdb认识到exe的参数作为gdb的input。 如何在这种情况下分析核心转储文件?

我怎样才能看到我的Python应用程序发送的整个HTTP请求?

在我的情况下,我正在使用requests库通过HTTPS调用PayPal的API。 不幸的是,我从PayPal得到一个错误,贝宝支持不能找出错误是什么或者是什么原因造成的。 他们要我“请提供整个请求,包括标题”。 我怎样才能做到这一点?

在Linux中跟踪本地函数调用的工具

我正在寻找像ltrace或strace这样的工具,可以跟踪可执行文件中的本地定义的函数。 ltrace只跟踪dynamic库调用,并且只跟踪系统调用。 例如,给定以下C程序: #include <stdio.h> int triple ( int x ) { return 3 * x; } int main (void) { printf("%d\n", triple(10)); return 0; } 使用ltrace运行程序会显示printf的调用,因为这是一个标准的库函数(这是我系统上的一个dynamic库), strace将显示来自启动代码的所有系统调用,用于实现printf的系统调用,以及关机代码,但我想要的东西,会告诉我,函数triple被调用。 假设本地函数没有被优化编译器内联,并且二进制文件没有被删除(符号被删除),是否有一个工具可以做到这一点? 编辑 一些澄清: 如果该工具还为非本地function提供跟踪信息,那也没问题。 我不想重新编译支持特定工具的程序,可执行文件中的符号信息就足够了。 如果我可以使用该工具附加到现有的进程,如我可以用ltrace / strace,我会非常好。