当前位置:首页 > 奇闻趣事

debug命令 # Xcode 编译器调试命令(所有)

在用编译器调试之前,一次只使用几个常规的调试命令。但是基于折腾的原理,今天列出了所有的调试命令和功能。

语言歌曲

快速列表在最后:下面是一些常见且重要的命令:

下面有更详细的演示

如果您想了解关于编译器调试命令的更多信息:

接下来,让我们看看常见调试命令的用法:

一个

关于

列出与单词或主题相关的调试器命令。

例如

(lldb)关于采购订单

2

断点

请看截图文档:

(lldb)断点

它可以缩写为br

功能很强大,下面详细描述

断点

重要的

(lldb)打印总和可以缩写为(lldb) p总和

即印刷体写成p。

在代码中:varsums = ["0.00 "、" 0.00 "、" 0.00 "、" 0.00"]

调试窗口如下所示:

结果:

(lldb)打印总和([String]) $R14 = 4个值{[0]= " 0.00 "[1]= " 0.00 "[2]= " 0.00 "[3]= " 0.00 " }

如果要在命令行上打印十进制数:

输入参数表示进制 (e.g)p/x66(x表示16进制)(Int) $R17 = 0x0000000000000042p/t6(t表示2进制)(Int) $R20 = 0b0000000000000000000000000000000000000000000000000000000000000110p/c"s"(c表示字符)(String) $R24 = "s"

表达

直接更改其值,点击继续运行,运行的结果就是本次赋值后的结果

(lldb)表达式总和= ["10.00 "、" 0.00 "、" 0.00 "、" 0.00"]

示例:

更多用法:

作为对象打印:

表达式-o-sum可以缩写如下:e-o-sum

其中:

e-o-sum可以写成po,作用等价。

步骤

与进程交互的命令当然与它们背后的参数相匹配,以达到相应的目的(lldb)进程帮助如下:

举个常见的栗子:

继续-继续执行当前进程中的所有线程。

是继续执行程序,当遇到断点时,在LLDB中执行就是继续执行程序

线

当然,与进程交互的命令与它们背后的参数相匹配,以达到相应的目的(lldb)。线程帮助如下:

匹配参数命令执行的功能将在后面描述。

这里我们应该着重谈几个:

* **`(lldb)线程return`**过早地从堆栈返回,立即执行return命令并退出当前堆栈。可以伪装一些退货信息等等。从写一些函数的行为等等。基本框架

调试也使用其参数完成

一个常用的命令:

lldb)帧信息

打印出当前行数:项目名-类名-函数名

其他功能参考参数后面的解释

看完上面的命令,我们来看看编译器调试常用的几个按钮

从图中可以看出,调试有四个按钮

如果遇到如图所示的第一个继续,点击它,程序将正常运行。如果有其他断点,您将跳转到下一个断点。

Ps:点击它,在LLDB调试框中输入

(lldb) process continue具有相同的功能。

C的效果是一样的

当第二步在断点处暂停时,单击此按钮,程序将逐行执行。即使调用了函数,也不会进入函数,而是直接跳过这个函数的执行,如下图所示:

在第115行命中一个断点,然后点击这个按钮,他就会执行第116行,然后点击它执行第117行,而不是执行第116行调用的函数中的那一行。

Ps:在程序中,与此按钮功能相同的LLDB命令的参数是相同的命令:

(lldb) n

(lldb)下一个

(lldb)线程跨越

效果是一样的

第三步进入。它是真正的逐行执行命令。即使执行了函数,也会一行一行地跳转到函数中执行代码。也就是说,想进入功能的时候用。

Ps:在程序中,与此按钮功能相同的LLDB命令的参数是相同的命令:

(lldb)线程介入

(lldb)步长

(lldb) s

第四步如果你输入一个函数,运行一两行后如果你想跳过这个函数,使用这个按钮。其实它的操作就是一个栈的结束。

快速查看 Xcode 的所有断点

如图所示,这是通过单击查看项目文件中的所有断点

然后使用LLDB命令查看所有断点:

(lldb) br list或(lldb) br李灿也达到同样的目的

通过调试器中的LLDB快速创建断点

使用以下命令完成115个断点的设置

(lldb)断点集-f ViewController.swift -l 115

这时,当我们执行继续按钮时,我们会发现我们已经跳到了第115行的断点。

我们通过大名单来看B,它的介绍是:

使用几种速记格式之一设置断点。

设置断点的命令是:

swift:127在127设置断点

Xcode UI屏幕上的条件执行断点

如图:

从图中可以看出:

第一步:我们在第24行遇到了一个断点。

步骤2:我们看到标记为2的框,其中i==2表示当I等于2时将执行该断点

步骤3:我们看到标记为3的框,这意味着LLDB将在执行这个断点时执行po i的命令

第四步:我们看到标有4的盒子。当I为2时,执行断点的打印操作

其中ignore表示断点只在第一次执行,例如,如果ignore设置为2,断点将在第三次调用时触发。

所以重点来了:断点程序会比较函数被执行的次数和断点。然后比较条件,满足条件后执行LLDB命令语句

+号可以支持多个LLDB命令。

其他断点条件和执行的命令等等。

动作背后更多功能!

如图:

1.阿普尔

苹果的脚本语言,可以从这里开始运行

2.捕捉图形处理器帧

Unity游戏调试。目前没有研究

3.调试器命令

相当于直接在LLDB上使用命令

4.日志消息

执行断点时,hello信息将直接打印在LLDB列中

5.外壳命令

如图:

当断点被执行时,计算机将读取Hello world

6.声音

选择对应的声音,遇到断点就发出对应的声音,也很有意思。

一些LLDB和控制台插件,加上插件和脚本开发,会大大提高开发效率。

只需设置一个断点:

命令行输入:(lldb)帮助

快速查询所有命令列表

命令命令作用描述apropos-- List debugger commands related to a word or subject.(列出与某个单词或主题相关的调试器命令。)breakpoint-- Commands for operating on breakpoints (see 'help b' for shorthand.)(断点的相关操作,详细看下面)bugreport-- Commands for creating domain-specific bug reports.(创建某个特点作用域的bug 命令)command-- Commands for managing custom LLDB commands.disassemble-- Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.expression-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.(直接改变其值,点击继续运行)frame-- Commands for selecting and examing the current thread's stack frames.(通过命令来检查当前堆栈的相关信息。结合后面的命令参数)gdb-remote-- Connect to a process via remote GDB server. If no host is specifed, localhost is assumed.gui-- Switch into the curses based GUI mode.help-- Show a list of all debugger commands, or give details about a specific command.kdp-remote-- Connect to a process via remote KDP server. If no UDP port is specified, port 41139 is assumed.language-- Commands specific to a source language.log-- Commands controlling LLDB internal logging.memory-- Commands for operating on memory in the current target process.platform-- Commands to manage and create platforms.plugin-- Commands for managing LLDB plugins.process-- Commands for interacting with processes on the current platform.(配合其包含的命令继续执行 执行 process help即可看到)quit-- Quit the LLDB debugger.register-- Commands to access registers for the current thread and stack frame.-- Invoke the interpreter with provided code and display any results. Start the interactive interpreter if no code is supplied.settings-- Commands for managing LLDB settings.source-- Commands for examining source code described by debug information for the current target process.target-- Commands for operating on debugger targets.thread-- Commands for operating on one or more threads in the current process.(在当前进程中操作一个或多个线程的命令,结合其下面的参数进行。下面有其搭配参数详细说明)type-- Commands for operating on the type system.version-- Show the LLDB debugger version.(查看开发语言的版本)watchpoint-- Commands for operating on watchpoints.add-dsym-- Add a debug symbol file to one of the target's current modules by specifying a path to a debug symbols file, or using the options to specify a module to download symbols for.attach-- Attach to process by ID or name.b-- Set a breakpoint using one of several shorthand formats.bt-- Show the current thread's call stack. Any numeric argument displays at most that many frames. The argument 'all' displays all threads.c-- Continue execution of all threads in the current process.call-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.continue-- Continue execution of all threads in the current process.detach-- Detach from the current target process.di-- Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.dis-- Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.display-- Evaluate an expression at every stop (see 'help target stop-hook'.)down-- Select a newer stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.env-- Shorthand for viewing and setting environment variables.exit-- Quit the LLDB debugger.f-- Select the current stack frame by index from within the current thread (see 'thread backtrace'.)file-- Create a target using the argument as the main executable.finish-- Finish executing the current stack frame and stop after returning. Defaults to current thread unless specified.image-- Commands for accessing information for one or more target modules.j-- Set the program counter to a new address.jump-- Set the program counter to a new address.kill-- Terminate the current target process.l-- List relevant source code using one of several shorthand formats.list-- List relevant source code using one of several shorthand formats.n-- Source level single step, stepping over calls. Defaults to current thread unless specified.(相当于一行一行的执行函数)next-- Source level single step, stepping over calls. Defaults to current thread unless specified.(与 n的作用几乎一致)nexti-- Instruction level single step, stepping over calls. Defaults to current thread unless specified.ni-- Instruction level single step, stepping over calls. Defaults to current thread unless specified.p-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.(可以打印程序中相关参数的值,其属性状态)parray-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.(与 p相同)po-- Evaluate an expression on the current thread. Displays any returned value with formatting controlled by the type's author.(与 p的区别是打印的值所带的参数相对简洁一点)poarray-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.(与 p相同)print-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.(与 p相同)q-- Quit the LLDB debugger.r-- Launch the executable in the debugger.rbreak-- Sets a breakpoint or set of breakpoints in the executable.repl-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.reveal_load_dev-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.reveal_load_sim-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.reveal_start-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.reveal_stop-- Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.run-- Launch the executable in the debugger.s-- Source level single step, stepping into calls. Defaults to current thread unless specified.(一步一步执行,即使遇到函数也会进入该函数一步一步执行代码)si-- Instruction level single step, stepping into calls. Defaults to current thread unless specified.sif-- Step through the current block, stopping if you step directly into a function whose name matches the TargetFunctionName.step-- Source level single step, stepping into calls. Defaults to current thread unless specified.stepi-- Instruction level single step, stepping into calls. Defaults to current thread unless specified.t-- Change the currently selected thread.tbreak-- Set a one-shot breakpoint using one of several shorthand formats.undisplay-- Stop displaying expression at every stop (specified by stop-hook index.)up-- Select an older stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.x-- Read from the memory of the current target process.

1.《debug命令 # Xcode 编译器调试命令(所有)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《debug命令 # Xcode 编译器调试命令(所有)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1221353.html

上一篇

购买快乐飞遇14次航变 网友吐槽:很不快乐 登上网络热搜了!

下一篇

难以想象!骨科医生竟当上"黑老大" 还成为卖淫场所的“保护伞”

or函数 Excel逻辑函数and,or和乘号,加号的应用

  • or函数 Excel逻辑函数and,or和乘号,加号的应用
  • or函数 Excel逻辑函数and,or和乘号,加号的应用
  • or函数 Excel逻辑函数and,or和乘号,加号的应用

excel加号 Excel逻辑函数and,or和乘号,加号的应用

  • excel加号 Excel逻辑函数and,or和乘号,加号的应用
  • excel加号 Excel逻辑函数and,or和乘号,加号的应用
  • excel加号 Excel逻辑函数and,or和乘号,加号的应用

建筑节能材料 建筑节能常用材料热工性能指标参数

  • 建筑节能材料 建筑节能常用材料热工性能指标参数
  • 建筑节能材料 建筑节能常用材料热工性能指标参数
  • 建筑节能材料 建筑节能常用材料热工性能指标参数

vivoz5参数 vivo Z5参数官宣:骁龙712+4800万像素三摄

  • vivoz5参数 vivo Z5参数官宣:骁龙712+4800万像素三摄
  • vivoz5参数 vivo Z5参数官宣:骁龙712+4800万像素三摄
  • vivoz5参数 vivo Z5参数官宣:骁龙712+4800万像素三摄

vivoz3i参数配置 Vivo Z3i怎么样?1分钟秒懂Vivo Z3i参数配置

  • vivoz3i参数配置 Vivo Z3i怎么样?1分钟秒懂Vivo Z3i参数配置
  • vivoz3i参数配置 Vivo Z3i怎么样?1分钟秒懂Vivo Z3i参数配置
  • vivoz3i参数配置 Vivo Z3i怎么样?1分钟秒懂Vivo Z3i参数配置
55寸拼接屏 55寸0.88mm拼接屏参数及案例应用介绍

55寸拼接屏 55寸0.88mm拼接屏参数及案例应用介绍

55寸0.88mm拼接屏参数及案例应用。 55寸0.88mm拼接屏是一种接缝超窄的拼接面板,主要为寻求高品质显示的用户提供更好的解决方案。过去一些高端指挥中心和会议室,用户一方面想用LCD拼接屏,但又不得不选择价格更高的DLP和小间距led。从...

对数函数知识点总结 高中数学!幂函数、指数函数、对数函数知识点总结!很实用!

  • 对数函数知识点总结 高中数学!幂函数、指数函数、对数函数知识点总结!很实用!
  • 对数函数知识点总结 高中数学!幂函数、指数函数、对数函数知识点总结!很实用!
  • 对数函数知识点总结 高中数学!幂函数、指数函数、对数函数知识点总结!很实用!

函数周期性 双对称函数的周期性

  • 函数周期性 双对称函数的周期性
  • 函数周期性 双对称函数的周期性
  • 函数周期性 双对称函数的周期性