相关疑难解决方法(0)

gdb:如何在循环执行期间暂停?

我正在使用NetBeans 7作为我的IDE在Windows 7中的mingw32下使用g ++编写软件渲染器.

我一直需要对它进行描述,而这种需求已达到临界质量,因为我已经过去了解结构.我环顾四周,对我而言,这个答案显示了同时跨平台和保持简单的最大希望.

这种方法的要点是,可能最基本的(在许多方面,最准确的)分析/优化方法是直接通过暂停执行来直接对堆栈进行采样......不幸的是,NetBeans 不会暂停.所以我试图找出如何直接使用gdb进行此采样.

关于gdb,我不太了解.但是,我从手册页中可以看出,您在运行可执行文件之前设置了断点.这对我没有帮助.

有没有人知道一个简单的方法来获取gdb(或其他gnu工具):

  1. 当我这么说时(优先)采样堆栈
  2. 在给定的时间段内随机抽取一大堆样本

...给出我陈述的配置?

c++ debugging gdb netbeans gnu

34
推荐指数
1
解决办法
4万
查看次数

GDB如何在没有断点的情况下停止执行?

如何在没有断点的情况下停止gdb执行?

gdb

32
推荐指数
4
解决办法
5万
查看次数

暂停没有断点的gdb

当我在Xcode中调试程序时,我可以在调试器控制台中暂停执行.有没有办法在命令行中使用gdb?

我想这样做,所以我可以在程序启动后修改断点.

c gdb

23
推荐指数
1
解决办法
2万
查看次数

在Linux上断言失败后继续调试?

当在Windows上使用Visual C++断言失败时,调试器会停止,显示消息,然后让您继续(或者,如果没有运行调试会话,则提供为您启动Visual Studio).

在Linux上,似乎assert()的默认行为是显示错误并退出程序.由于我的所有断言都通过宏,我试图使用信号来解决这个问题,比如

#define ASSERT(TEST) if(!(TEST)) raise(SIGSTOP);
Run Code Online (Sandbox Code Playgroud)

但是虽然GDB(通过KDevelop)停在正确的位置,但我似乎无法继续通过信号,并且在GDB内手动发送信号只会让我感到不知所措,无论是GDB还是调试过程都无法控制.

c c++ linux gdb assert

16
推荐指数
2
解决办法
1万
查看次数

Solaris GDB:如何暂停执行?

我正在使用GDB在Solaris 10 x86上调试封闭的源程序.

我将gdb附加到程序并继续执行,但是当我想稍后暂停执行以检查一些内存时我不能.当我按下CTRL-C时,它只打印^ C而不是暂停程序并将我放到(gdb)提示符下.

bash-3.00# gdb --pid=1521
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10".
Attaching to process 1521
Retry #1:
Retry #2:
Retry #3:
Retry …
Run Code Online (Sandbox Code Playgroud)

debugging gdb solaris

7
推荐指数
1
解决办法
5607
查看次数

标签 统计

gdb ×5

c ×2

c++ ×2

debugging ×2

assert ×1

gnu ×1

linux ×1

netbeans ×1

solaris ×1