Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 基于LLDB的故障分割_Debugging_Segmentation Fault_Lldb - Fatal编程技术网

Debugging 基于LLDB的故障分割

Debugging 基于LLDB的故障分割,debugging,segmentation-fault,lldb,Debugging,Segmentation Fault,Lldb,当我使用terminal for Mac上的lldb调试.c文件时,我发现无法找到分段错误的位置。我已经对代码进行了多次调试,但仍然会产生相同的错误。有人能帮我找到分段故障的位置吗 在不知道代码在做什么的情况下,我建议使用类似于的工具,而不仅仅是普通的调试器。它的设计目的是寻找像C/C++/FORTRAN这样的低级语言的内存问题。例如,它将告诉您是否尝试使用对数组来说太大的索引 从中,尝试使用lldb中的bt命令查看调用堆栈。您调用了一个libc函数,如scanf(),很可能向它传递了一个无效参

当我使用terminal for Mac上的lldb调试.c文件时,我发现无法找到分段错误的位置。我已经对代码进行了多次调试,但仍然会产生相同的错误。有人能帮我找到分段故障的位置吗

在不知道代码在做什么的情况下,我建议使用类似于的工具,而不仅仅是普通的调试器。它的设计目的是寻找像C/C++/FORTRAN这样的低级语言的内存问题。例如,它将告诉您是否尝试使用对数组来说太大的索引


从中,尝试使用lldb中的
bt
命令查看调用堆栈。您调用了一个libc函数,如
scanf()
,很可能向它传递了一个无效参数。当你看到调用堆栈时,你会看到一个堆栈框架,上面有你自己的代码,比如说它是框架3。您可以使用
f3
选择该帧,并且可以使用
v
命令查看变量,以了解传递给libc函数的哪些参数导致崩溃。

您可以将调试器输出复制为代码吗?这将使它更容易阅读。