Debugging 基于LLDB的故障分割
当我使用terminal for Mac上的lldb调试.c文件时,我发现无法找到分段错误的位置。我已经对代码进行了多次调试,但仍然会产生相同的错误。有人能帮我找到分段故障的位置吗 在不知道代码在做什么的情况下,我建议使用类似于的工具,而不仅仅是普通的调试器。它的设计目的是寻找像C/C++/FORTRAN这样的低级语言的内存问题。例如,它将告诉您是否尝试使用对数组来说太大的索引Debugging 基于LLDB的故障分割,debugging,segmentation-fault,lldb,Debugging,Segmentation Fault,Lldb,当我使用terminal for Mac上的lldb调试.c文件时,我发现无法找到分段错误的位置。我已经对代码进行了多次调试,但仍然会产生相同的错误。有人能帮我找到分段故障的位置吗 在不知道代码在做什么的情况下,我建议使用类似于的工具,而不仅仅是普通的调试器。它的设计目的是寻找像C/C++/FORTRAN这样的低级语言的内存问题。例如,它将告诉您是否尝试使用对数组来说太大的索引 从中,尝试使用lldb中的bt命令查看调用堆栈。您调用了一个libc函数,如scanf(),很可能向它传递了一个无效参
从中,尝试使用lldb中的
bt
命令查看调用堆栈。您调用了一个libc函数,如scanf()
,很可能向它传递了一个无效参数。当你看到调用堆栈时,你会看到一个堆栈框架,上面有你自己的代码,比如说它是框架3。您可以使用f3
选择该帧,并且可以使用v
命令查看变量,以了解传递给libc函数的哪些参数导致崩溃。您可以将调试器输出复制为代码吗?这将使它更容易阅读。