lldb会自动终止无限循环吗?

时间:2017-04-27 17:40:55

标签: lldb

我写了一个无限循环,如下面的

for (size_t i = words-1; i >= 0; --i) {
    ... data[i] ...
}

它也可以访问OOB内存。可执行文件与coredump崩溃。使用带有coredump的gdb告诉我,当我是一个庞大的数字时它会崩溃。

但是,lldb可以成功运行相同的可执行文件而不会发生任何崩溃...... LLDB是否“解释”了代码并为我解决了问题?

1 个答案:

答案 0 :(得分:0)

不,对于调试器而言,这将是一件可怕的事情!一般的调试器,特别是lldb,尽可能地使程序尽可能地运行程序。运行时,调试器必须完成一些侵入性工作。 - 例如当需要在新库中读取共享库加载时,它必须暂停,并且调试器首先获得发送到程序的信号的破解。因此,特别是在多线程程序中,调试器可能会扰乱时序。但它永远不应该改变程序中代码的指令流。

如果您可以在命令行中运行而不是在lldb中组成显示崩溃的测试用例,请提交lldb错误跟踪器的错误:

https://bugs.llvm.org

并包含示例。