gpt4 book ai didi

c++ - 为什么我的代码会崩溃?

转载 作者:行者123 更新时间:2023-11-28 05:58:00 24 4
gpt4 key购买 nike

这是一个相当笼统的问题。

如果您有一个包含很多行代码的程序,比如说 C++。在编译过程中一切运行良好,没有警告也没有错误。但是在执行程序期间突然卡住,导致崩溃。

如果您几乎没有关于可能发生这种情况的信息(可能是循环,可能是指针,可能是错误的初始化,可能是......),如何解决这个问题。

是否有任何技术或分析器可以跟踪程序执行的当前行?

最佳答案

您的问题太宽泛,没有统一的答案。一般来说,错误是你的(一开始不要怀疑编译器或实现是错误的,几乎总是是错误的,而不是系统!)。

首先,仔细阅读 Halting ProblemUndecidable Problem .

然后,要格外小心undefined behavior (UB) 在您的代码中(并非所有代码都提供 segmentation faults ,请参阅 this )。 C++ (& C) 代码可以有很多。一些语言(Haskell、Scheme、Common Lisp……)的规范更好,UB 也更少。

具体来说,

  • 在编译器中启用所有警告和调试信息,因此如果使用 GCC,请使用 g++ -Wall -Wextra -g 进行编译(或者同样使用 Clang/LLVM )。有时您会很乐意使用一些 sanitizer ,例如用 some -fsanitize= 编译旗帜。

  • 了解如何使用调试器(例如 gdb ),以及 valgrind

  • 学习更多关于 C++ 的知识,因为它是一种很难的语言。

  • 了解并遵循编码规则和准则(例如 rule of 5)。

  • 保持好奇心并学习许多其他语言和概念(因此请阅读 SICP 并学习 Scheme)。

你需要 ten years学习编程,所以要有耐心。

附言。我有偏见的建议是在笔记本电脑上安装 Linux。

关于c++ - 为什么我的代码会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33803224/

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