lldb help

可能你会忘记某些指令的用法, 使用help可以帮助你。

  1. (lldb) breakpoint --help
  2. invalid command 'breakpoint --help'.
  3. (lldb) help
  4. Debugger commands:
  5. apropos -- List debugger commands related to a word or subject.
  6. breakpoint -- Commands for operating on breakpoints (see 'help b' for shorthand.)
  7. command -- Commands for managing custom LLDB commands.
  8. disassemble -- Disassemble specified instructions in the current target. Defaults to the
  9. current function for the current thread and stack frame.
  10. expression -- Evaluate an expression on the current thread. Displays any returned value
  11. with LLDB's default formatting.
  12. frame -- Commands for selecting and examing the current thread's stack frames.
  13. gdb-remote -- Connect to a process via remote GDB server. If no host is specifed,
  14. localhost is assumed.
  15. gui -- Switch into the curses based GUI mode.
  16. help -- Show a list of all debugger commands, or give details about a specific
  17. command.
  18. kdp-remote -- Connect to a process via remote KDP server. If no UDP port is specified,
  19. port 41139 is assumed.
  20. language -- Commands specific to a source language.
  21. log -- Commands controlling LLDB internal logging.
  22. memory -- Commands for operating on memory in the current target process.
  23. platform -- Commands to manage and create platforms.
  24. plugin -- Commands for managing LLDB plugins.
  25. process -- Commands for interacting with processes on the current platform.
  26. quit -- Quit the LLDB debugger.
  27. register -- Commands to access registers for the current thread and stack frame.
  28. reproducer -- Commands for manipulating reproducers. Reproducers make it possible to
  29. capture full debug sessions with all its dependencies. The resulting
  30. reproducer is used to replay the debug session while debugging the
  31. debugger.
  32. Because reproducers need the whole the debug session from beginning to end,
  33. you need to launch the debugger in capture or replay mode, commonly though
  34. the command line driver.
  35. Reproducers are unrelated record-replay debugging, as you cannot interact
  36. with the debugger during replay.
  37. script -- Invoke the script interpreter with provided code and display any results.
  38. Start the interactive interpreter if no code is supplied.
  39. settings -- Commands for managing LLDB settings.
  40. source -- Commands for examining source code described by debug information for the
  41. current target process.
  42. statistics -- Print statistics about a debugging session
  43. target -- Commands for operating on debugger targets.
  44. thread -- Commands for operating on one or more threads in the current process.
  45. type -- Commands for operating on the type system.
  46. version -- Show the LLDB debugger version.
  47. watchpoint -- Commands for operating on watchpoints.
  48. Current command abbreviations (type 'help command alias' for more info):
  49. add-dsym -- Add a debug symbol file to one of the target's current modules by specifying a path
  50. to a debug symbols file, or using the options to specify a module to download symbols
  51. for.
  52. attach -- Attach to process by ID or name.
  53. b -- Set a breakpoint using one of several shorthand formats.
  54. bt -- Show the current thread's call stack. Any numeric argument displays at most that
  55. many frames. The argument 'all' displays all threads. Use 'settings set
  56. frame-format' to customize the printing of individual frames and 'settings set
  57. thread-format' to customize the thread header.
  58. c -- Continue execution of all threads in the current process.
  59. call -- Evaluate an expression on the current thread. Displays any returned value with
  60. LLDB's default formatting.
  61. continue -- Continue execution of all threads in the current process.
  62. detach -- Detach from the current target process.
  63. di -- Disassemble specified instructions in the current target. Defaults to the current
  64. function for the current thread and stack frame.
  65. dis -- Disassemble specified instructions in the current target. Defaults to the current
  66. function for the current thread and stack frame.
  67. display -- Evaluate an expression at every stop (see 'help target stop-hook'.)
  68. down -- Select a newer stack frame. Defaults to moving one frame, a numeric argument can
  69. specify an arbitrary number.
  70. env -- Shorthand for viewing and setting environment variables.
  71. exit -- Quit the LLDB debugger.
  72. f -- Select the current stack frame by index from within the current thread (see 'thread
  73. backtrace'.)
  74. file -- Create a target using the argument as the main executable.
  75. finish -- Finish executing the current stack frame and stop after returning. Defaults to
  76. current thread unless specified.
  77. image -- Commands for accessing information for one or more target modules.
  78. j -- Set the program counter to a new address.
  79. jump -- Set the program counter to a new address.
  80. kill -- Terminate the current target process.
  81. l -- List relevant source code using one of several shorthand formats.
  82. list -- List relevant source code using one of several shorthand formats.
  83. n -- Source level single step, stepping over calls. Defaults to current thread unless
  84. specified.
  85. next -- Source level single step, stepping over calls. Defaults to current thread unless
  86. specified.
  87. nexti -- Instruction level single step, stepping over calls. Defaults to current thread
  88. unless specified.
  89. ni -- Instruction level single step, stepping over calls. Defaults to current thread
  90. unless specified.
  91. p -- Evaluate an expression on the current thread. Displays any returned value with
  92. LLDB's default formatting.
  93. parray -- parray <COUNT> <EXPRESSION> -- lldb will evaluate EXPRESSION to get a
  94. typed-pointer-to-an-array in memory, and will display COUNT elements of that type
  95. from the array.
  96. po -- Evaluate an expression on the current thread. Displays any returned value with
  97. formatting controlled by the type's author.
  98. poarray -- poarray <COUNT> <EXPRESSION> -- lldb will evaluate EXPRESSION to get the address of
  99. an array of COUNT objects in memory, and will call po on them.
  100. print -- Evaluate an expression on the current thread. Displays any returned value with
  101. LLDB's default formatting.
  102. q -- Quit the LLDB debugger.
  103. r -- Launch the executable in the debugger.
  104. rbreak -- Sets a breakpoint or set of breakpoints in the executable.
  105. re -- Commands to access registers for the current thread and stack frame.
  106. run -- Launch the executable in the debugger.
  107. s -- Source level single step, stepping into calls. Defaults to current thread unless
  108. specified.
  109. si -- Instruction level single step, stepping into calls. Defaults to current thread
  110. unless specified.
  111. sif -- Step through the current block, stopping if you step directly into a function whose
  112. name matches the TargetFunctionName.
  113. step -- Source level single step, stepping into calls. Defaults to current thread unless
  114. specified.
  115. stepi -- Instruction level single step, stepping into calls. Defaults to current thread
  116. unless specified.
  117. t -- Change the currently selected thread.
  118. tbreak -- Set a one-shot breakpoint using one of several shorthand formats.
  119. undisplay -- Stop displaying expression at every stop (specified by stop-hook index.)
  120. up -- Select an older stack frame. Defaults to moving one frame, a numeric argument can
  121. specify an arbitrary number.
  122. v -- Show variables for the current stack frame. Defaults to all arguments and local
  123. variables in scope. Names of argument, local, file static and file global variables
  124. can be specified. Children of aggregate variables can be specified such as
  125. 'var->child.x'. The -> and [] operators in 'frame variable' do not invoke operator
  126. overloads if they exist, but directly access the specified element. If you want to
  127. trigger operator overloads use the expression command to print the variable
  128. instead.
  129. It is worth noting that except for overloaded operators, when printing local
  130. variables 'expr local_var' and 'frame var local_var' produce the same results.
  131. However, 'frame variable' is more efficient, since it uses debug information and
  132. memory reads directly, rather than parsing and evaluating an expression, which may
  133. even involve JITing and running code in the target program.
  134. var -- Show variables for the current stack frame. Defaults to all arguments and local
  135. variables in scope. Names of argument, local, file static and file global variables
  136. can be specified. Children of aggregate variables can be specified such as
  137. 'var->child.x'. The -> and [] operators in 'frame variable' do not invoke operator
  138. overloads if they exist, but directly access the specified element. If you want to
  139. trigger operator overloads use the expression command to print the variable
  140. instead.
  141. It is worth noting that except for overloaded operators, when printing local
  142. variables 'expr local_var' and 'frame var local_var' produce the same results.
  143. However, 'frame variable' is more efficient, since it uses debug information and
  144. memory reads directly, rather than parsing and evaluating an expression, which may
  145. even involve JITing and running code in the target program.
  146. vo -- Show variables for the current stack frame. Defaults to all arguments and local
  147. variables in scope. Names of argument, local, file static and file global variables
  148. can be specified. Children of aggregate variables can be specified such as
  149. 'var->child.x'. The -> and [] operators in 'frame variable' do not invoke operator
  150. overloads if they exist, but directly access the specified element. If you want to
  151. trigger operator overloads use the expression command to print the variable
  152. instead.
  153. It is worth noting that except for overloaded operators, when printing local
  154. variables 'expr local_var' and 'frame var local_var' produce the same results.
  155. However, 'frame variable' is more efficient, since it uses debug information and
  156. memory reads directly, rather than parsing and evaluating an expression, which may
  157. even involve JITing and running code in the target program.
  158. x -- Read from the memory of the current target process.

很亲切。

lldb调试C++总结(2)的更多相关文章

  1. iOS逆向工程之Hopper+LLDB调试第三方App

    LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...

  2. iOS LLDB调试器

    随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...

  3. 使用Python脚本强化LLDB调试器

    LLDB是Xcode自带的调试器,作为一个iOS应用开发程序员,平时我在开发应用时会使用LLDB来调试代码.在逆向应用时,也会用到LLDB来跟踪应用的执行过程. LLDB还内置了一个Python解析器 ...

  4. LLDB调试基本使用

    在平时开发中,我们可能需要调试某些东西,比如查看给服务器发请求时传过去的参数,如果不适用LLDB的话我们用的最多的就是通过NSLog方式去打印,但现在我们可以精简这个步骤,那就是使用LLDB调试命令. ...

  5. iOS 开发者旅途中的指南针 - LLDB 调试技术

    文章转载于:iOS 开发者旅途中的指南针 - LLDB 调试技术 今天给大家介绍的内容,无关乎任何功能性开发技术,但又对开发的效率影响至深,这就是调试技术. 何为调试呢,比如我们用 print 函数在 ...

  6. centos7使用lldb调试netcore应用转储dump文件

    centos7下安装lldb,dotnet netcore 进程生成转储文件,并使用lldb进行分析 随着netcore应用在linux上部署的应用越来越多,碰到cpu 100%,内存暴涨的情况也一直 ...

  7. centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

    写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用. 当然,在真实的产线环境中需要分析的数据和难度远远高于demo所示,所以demo的作用也仅仅只能起到介绍工具的作用. ...

  8. Xcode - LLDB调试技巧

    LLDB是Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.平时用Xcode运行程序,实际走的都是LLDB.熟练使用LLDB,可以让你debug事半功倍. ...

  9. Swift 使用 LLDB 调试命令

    swift 和 oc 的语法不一样: Xcode 调试技巧之 Swift 篇 打印和赋值,观察数值变量和view对象属性 p指令可打印其对象类型.内存地址以及该对象的值等具体信息, po指令则是打印其 ...

  10. iOS - 浅谈LLDB调试器

    摘要 LLDB是Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.平时用Xcode运行程序,实际走的都是LLDB.熟练使用LLDB,可以让你debug事半功 ...

随机推荐

  1. kubernetes部署haproxy、keepalived为kube-apiserver做集群

    也可以用nginx.keepalived做负载均衡,看大家的需求. # yum -y install haproxy keepalived haproxy的配置文件(三台一样): cat > / ...

  2. java输入代码

    import java.util.Scanner; public class Demo59 {    public static void main(String[] args) {        / ...

  3. 学习java 7.6

    学习内容: 方法重写注意事项:子类不能重写父类的私有方法 子类的访问权限不比父类的低(父类默认,子类可以是默认也可以是public) java中继承的注意事项:java中类只支持单继承,java中类支 ...

  4. 基于 Golang 构建高可扩展的云原生 PaaS(附 PPT 下载)

    作者|刘浩杨 来源|尔达 Erda 公众号 ​ 本文整理自刘浩杨在 GopherChina 2021 北京站主会场的演讲,微信添加:Erda202106,联系小助手即可获取讲师 PPT. 前言 当今时 ...

  5. day6 基本数据类型及内置方法

    day6 基本数据类型及内置方法 一.10进制转其他进制 1. 十进制转二进制 print(bin(11)) #0b1011 2. 十进制转八进制 print(hex(11)) #0o13 3. 十进 ...

  6. flink04 -----1 kafkaSource 2. kafkaSource的偏移量的存储位置 3 将kafka中的数据写入redis中去 4 将kafka中的数据写入mysql中去

    1. kafkaSource 见官方文档 2. kafkaSource的偏移量的存储位置 默认存在kafka的特殊topic中,但也可以设置参数让其不存在kafka的特殊topic中   3   将k ...

  7. STL全特化与偏特化

    在泛型编程中,常常会使用一些非完全泛型的类模板,这就是特化. 如何理解全特化呢?如上图所示,第一个template class是空间配置器的类模板,第二个就是一个全特化的template class. ...

  8. mystar01 nodejs MVC 公共CSS,JS设置

    mystar01 nodejs MVC gulp 项目搭建 config/express.js中定义别名 //将下载的第三方库添加到静态资源路径当中,方便访问 app.use('/jquery', e ...

  9. iOS11&IPhoneX适配

    1.在iOS 11中,会默认开启获取的一个估算值来获取一个大体的空间大小,导致不能正常显示,可以选择关闭.目前尝试在delegate中处理不能很好的解决,不过可以直接设置: Swift if #ava ...

  10. 3.6 String 与 切片&str的区别

    The rust String  is a growable, mutable, owned, UTF-8 encoded string type. &str ,切片,是按UTF-8编码对St ...