使用Eclipse CDT在无限循环中获取堆栈跟踪

用户名

我正在使用Eclipse CDT开发一个项目,并且遇到了似乎是无限循环的问题。

从Eclipse中调试应用程序时,当进程异常终止(segfault是最常见的中断)或遇到断点时,我可以轻松地检索和检查调用堆栈。

如果我遇到无限循环而又不知道正在循环的语句,那么堆栈跟踪将使我对要查看的功能有一个大概的了解。我如何告诉Eclipse让我立即了解该进程正在执行的堆栈跟踪(在没有断点或段错误的情况下)?

到目前为止,我的技巧是

killall -SIGSEGV $process_name

(替换$process_name为您要调试的进程的名称)。这将导致该进程表现为已出现段错误,即停止它并为您提供当时该进程正在执行的任何内容的调用堆栈。

有没有更干净的方法可以达到相同目的?

用户名

较干净的方法是:

killall -SIGCONT $process_name

这将向CONT过程发送(继续)信号。该信号的主要目的是在发送STOP信号后继续进行处理当发送到不停止的进程时,它什么也不做。

但是,如果正在Eclipse中调试进程(而调试又依赖于gdb进行调试),则这将停止执行并导致显示堆栈跟踪。

与之不同-SIGSEGV(或其他告诉进程转储其内核或终止的信号),您可以单击Resume按钮并继续运行您的进程。UX接近断点后将发生的情况,除了Eclipse将报告挂起执行的其他原因。

请注意,如果您正在执行任何会干扰信号处理过程的操作,则可能无法按预期进行。

不过,不知道是否可以从Eclipse UI中触发任何东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Eclipse CDT中的无限重建循环

使用Eclipse清理Groovy中的堆栈跟踪?

使用?时的无限循环:“ for”循环中的条件

使用 QTimer 在无限循环中运行函数

为什么在无限获取循环中捕获使用上下文 API 的获取中的数据设置状态?

使用基于范围的for循环时出错-Eclipse CDT Luna

php foreach循环中的无限堆栈

Eclipse CDT中的循环依赖

调试Eclipse CDT的使用Eclipse调试时行为怪异

使用挂钩获取数据时的无限循环

如何在无限循环中使用更少的堆空间?

在无限循环中使用ajax的fullCalendar viewRender

使用python在无限循环中连接到套接字

使用pool()跟踪并行循环中的答案-Python

Eclipse CDT,如何使用Gstreamer进行构建?

使用Eclipse CDT进行Cplex配置

使用OSGI的Eclipse CDT插件中的LinkageError

使用rxjs时如何获取错误的堆栈跟踪?

使用DTrace在Rust上获取堆栈跟踪/分析数据

SIGSEGV 使用 gdb 时无法获取堆栈跟踪

在iOS中使用NSPersistentCloudKitContainer时获取错误堆栈跟踪

如何使用Websphere自由的logstashCollector功能获取堆栈跟踪?

使用 querySelector 在 for 循环中获取属性

如何使用if语句在for循环中获取真值

在 v-for 循环中使用 v-autocomplete 会导致无限循环

在指令属性上使用过滤器会导致$ digest循环中的无限循环

while循环无限运行。使用计时器无法在while循环中终止

在循环中使用正则表达式时,应用程序进入无限循环

我继续在我的 for 循环中使用嵌套 if 获得无限循环