gpt4 book ai didi

c++ - 如何轻松找出程序崩溃的位置和原因?

转载 作者:行者123 更新时间:2023-12-03 17:42:06 25 4
gpt4 key购买 nike

我目前正在开发一个程序(在C++中,使用Code::Blocks),该程序使用大量随机数,并且花了一些时间才能开始。在大多数情况下,它可以正常工作,但有时它会执行非法操作,必须关闭。给定整个地方的随机数,并且当前程序要花费大约3-5分钟才能到达发生错误的阶段(此时间段是正常/可以接受的),因此可靠而又方便地重现问题是极其困难的困难,并且将每行代码报告给cout以手动跟踪事物是费时的,视觉上混乱的是报告与错误无关的事物,并且并不总是有用的,因为即使我知道程序何时停止,我有时也不会不知道为什么。

我是否可以通过某种方式查看程序崩溃前的最后一个操作,以及为什么会导致崩溃的原因?最好在CodeBlocks中进行操作,但是第三方也可以进行操作。我每次测试程序时都需要使用它,因为我不知道何时会发生崩溃。

最佳答案

这就是调试器的用途。使用完整的调试符号构建系统,配置系统,以便获得完整的崩溃报告(在Linux中为核心文件),然后使用核心文件启动调试器(或者在调试器中运行整个程序,但这可能会花费一段时间后,在调试器中运行通常比在调试器中运行慢得多。

当发生非法指令时,调试器应该能够为您提供程序的状态,并且您将获得有关程序运行状态的一些见解。从那里您可以找出问题所在,或者可以制作几个较小的测试用例来触发错误。

调试无法系统重现的问题是一种痛苦,祝您好运!

关于c++ - 如何轻松找出程序崩溃的位置和原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689909/

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