gpt4 book ai didi

xcode - 如何通过 LLDB 命令行添加断点操作?

转载 作者:行者123 更新时间:2023-12-04 02:53:01 30 4
gpt4 key购买 nike

如果您从 Xcode 编辑断点,则有一个 super 有用的选项可以添加一个“操作”,以便在每次遇到断点时自动执行。

如何从 LLDB 命令行添加此类操作?

最佳答案

使用 breakpoint command add 轻松搞定命令。类型 help breakpoint command add有关详细信息,但这里有一个示例。

int main ()
{
int i = 0;
while (i < 30)
{
i++; // break here
}
}

对此运行 lldb。首先,在源代码行上放置一个带有“break”的断点(对于这样的例子来说是一个很好的速记,但它基本上必须对你的源代码进行 grep,所以对较大的项目没有用)
(lldb) br s -p break
Breakpoint 1: where = a.out`main + 31 at a.c:6, address = 0x0000000100000f5f

添加断点条件,以便断点仅在 i 时停止是 5 的倍数:
(lldb) br mod -c 'i % 5 == 0' 1

让断点打印 i 的当前值并在它命中时回溯:
(lldb) br com add 1
Enter your debugger command(s). Type 'DONE' to end.
> p i
> bt
> DONE

然后使用它:
Process 78674 stopped and was programmatically restarted.
Process 78674 stopped and was programmatically restarted.
Process 78674 stopped and was programmatically restarted.
Process 78674 stopped and was programmatically restarted.
Process 78674 stopped
* thread #1: tid = 0x1c03, 0x0000000100000f5f a.out`main + 31 at a.c:6, stop reason = breakpoint 1.1
#0: 0x0000000100000f5f a.out`main + 31 at a.c:6
3 int i = 0;
4 while (i < 30)
5 {
-> 6 i++; // break here
7 }
8 }
(int) $25 = 20
* thread #1: tid = 0x1c03, 0x0000000100000f5f a.out`main + 31 at a.c:6, stop reason = breakpoint 1.1
#0: 0x0000000100000f5f a.out`main + 31 at a.c:6
#1: 0x00007fff8c2a17e1 libdyld.dylib`start + 1

关于xcode - 如何通过 LLDB 命令行添加断点操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345261/

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