gpt4 book ai didi

theory - 调试语句有哪些方式可以解决程序中的 "fix"错误?

转载 作者:行者123 更新时间:2023-12-05 01:02:13 26 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




在最近的一次采访中,我被问到以下问题:

You have a bug in your program, after attempting to debug it by inserting statements like printf, console.log, System.out.println, echo, etc, the bug disappears. How can this happen?



我回答如下:
  • 你在打印语句中有一些副作用,例如:System.out.println(foo.somethingWithSideEffects())
  • 添加 printf 会改变程序的内存布局,因此它可以覆盖相邻的内存并防止崩溃
  • native 代码中的未定义行为(如未初始化的值、缓冲区溢出、序列点等)

  • 面试官说这些不是唯一可能发生的方法,我想不出任何其他方法只需添加 printf 等就可以“修复”程序中的错误。

    还有哪些事情会导致这种情况发生?

    最佳答案

    想到的最重要的事情是将调试代码放入可以改变代码的时间,如果被调试的代码中存在竞争条件,这可能很重要。尝试调试在像这样检查时消失的竞争条件可能会非常令人沮丧。

    关于theory - 调试语句有哪些方式可以解决程序中的 "fix"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851243/

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