gpt4 book ai didi

c++ 程序在一个线程发生访问冲突时终止 - 如何在 linux 中捕获此问题 - 对于 win32 我在 vs2010 中获得堆栈跟踪

转载 作者:行者123 更新时间:2023-11-28 03:20:45 26 4
gpt4 key购买 nike

c++ 程序终止,没有异常或堆栈跟踪

我有一个多线程应用程序

如果我的其中一个线程在数组读取越界(或任何段错误情况)时发生访问冲突,我的整个应用程序将立即终止。

如果这种情况发生在我使用 visual studio 的 Windows 计数器部分,我会得到一个很好的堆栈跟踪信息,说明错误在哪里,以及问题是什么。

我迫切需要这种类型的调试环境才能在我的项目中取得成功。我有太多的线程和太多的开发人员运行项目的不同部分,以至于一个人不能正确处理异常,这会破坏整个项目。

我正在运行 Fedora Core 14我正在用 gcc 4.5.1 编译gdb是fedora 7.2-16.fc14我的 IDE 是 eclipse Juno 我正在使用 CDT 构建器我的工具链是交叉 GCC,我的构建器是 CDT Internal Builder

gdb 或 gcc 或 eclipse 是否有任何设置可以帮助我检测这些类型的情况?

最佳答案

这就是应该发生的事情。在 Unix 下,你得到一个完整的核心转储(您可以在调试器中检查),提供你已经授权了他们。 (ulimits -c——传统上,它们默认是授权的,不过linux好像变了这个。)

当然,要从核心转储中获取任何有用的信息,你需要用符号信息编译代码,并且后来没有剥离它。 (另一方面,您可以复制从你的用户机器到你的开发机器的核心转储,看看那里发生了什么。)

关于c++ 程序在一个线程发生访问冲突时终止 - 如何在 linux 中捕获此问题 - 对于 win32 我在 vs2010 中获得堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15503333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com