导航:首页 > 程序命令 > lldb调试命令

lldb调试命令

发布时间:2023-04-17 11:37:52

❶ 如何在Windows下编译或调试MySQL

用vs code 就可以了。

Visual Studio Code

Visual Studio Code(简称VS Code)是由微软开发的,同时支持Windows、linux和macOS操作系统的开源文本编辑器。它支持调试,内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于IntelliSense)、代码片段、代码重构等。该编辑器支持用户自定义配置,例如改变主题颜色、键盘快捷方式、编辑器属性和其他参数,还支持扩展程序并在编辑器中内置了扩展程序管理的功能。


安装LLDB

LLDB是LLVM编译器的一部分,推荐使用Homebrew安装LLVM工具集,不建议使用系统自带的LLDB,安装前必须先创建证书否则无法安装,步骤如下:

创建完成后,开始安装LLVM

brew install llvm --with-python@2--with-lldb

安装插件

VS Code自带有debug功能,这里我推荐使用LLDB Debugger插件。

接下来,为项目配置调试参数。

配置调试参数

使用VS Code打开MySQL源码目录,在侧边栏选择debug栏目,添加配置,program输入需要调试的程序路径,这里选择你编译好的mysqld路径,args输入程序启动所需的参数,通常会指定mysqld的配置文件。这样就配置好了,是不是很简单。

启动调试

点击启动按钮,启动后如果没有设置断点会mysqld会正常启动,如果触发了断点会如下图显示。

整个调试窗口基本分为六部分,所有的调试操作都在这里完成:

1:显示变量信息

2:设置重点关注的变量

3:显示调用栈信息

4:设置断点信息,在代码行号前也可以设置断点

5:代码显示区域,上方是调试按钮,包括 continue/stepover/step in/step out/restart/stop

6:调试终端输入输出区


断点设置

在代码行号前点击即可在该行为设置断点,也可以根据条件设置断点。以设置ConditionalBreakpoint为例,当程序启动后会按照你设置的条件表达式判断是否触发断点。

Conditional Breakpoint这种方式用在目标变量达到某条件时触发断点,其余则跳过继续执行。比如:设置变量等于目标表名时触发断点,其余表则跳过,相对函数名断点省去很多手工跳过操作。

远程调试

假如你想调试远程Linux服务器上的MySQL上面的方法就不合适了,这时需要远程调试。lldb和gdb都支持远程调试,这里以lldb为例。

需要先在远程主机上安装lldb,使用yum安装,源地址在这里http://mirror.centos.org/centos/7/sclo/x86_64/rh

remote$ yum install -y llvm-toolset-7

安装完成后,启动lldb-server

remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen"*:9191"--server

接下来,在VS Code调试界面中新增配置项。

{

"type":"lldb",

"request":"attach",

"name":"Remote attach",

"program":"~/mysql5626/usr/local/mysql/bin/mysqld",

"pid":"<target_pid>",

"initCommands": [

"platform select remote-linux",

"platform connect connect://<remote_host>:9191"

],

"sourceMap": {

"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26":"/Users/hongbin/workbench/mysql-server"

}

},

program:本机也要拷贝一份目标程序,加载

pid:填写远程主机的mysqld进程id

sourceMap:填写mysqld编译的代码路径与本机代码库路径的映射,这样调试时代码才可以和程序关联在一起看

注意:记得调试前将代码切换到与目标程序版本一致的branch

❷ iOS开发技能之lldb常用命令

首先我们创建一个简单工程来调试这些命令。打断点,下方就可以进行lldb调试。

除此之外, p 还隐藏了一个有意思的功能,常量的如洞盯进制转换:

其中, float 和 double 是经过特殊处理的,经过一些转换,渣和结果如下:

如上所示, x 就是 memory read 内存读取并打印的作用。

同理: x/8gx 打印 8 段, x/颤孙2gx 打印 2 段。

❸ VsCode 执行 debug(lldb/gdb) 命令

在使用其它 IDE 调试的时候,有时候仅仅使用 IDE 提供的调试按钮不能满足我神激尘们的需求,这时候我们会直接在游禅 IDE 提供的 Console 中输入 LLDB/GDB 指令,铅闷进行细粒度的控制。但是在使用 VsCode 开发 的时候,这个入口很难找到。分享给小伙伴们 : )

不像其他 IDE 可以直接输入 LLDB/GDB 指令,VsCode 需要使用 -exec 作为前缀来执行调试命令。例如想要打印变量 v ,输入 -exec p v 就可以执行 LLDB/GDB 的 p v 指令了。

❹ iOS LLDB的expr命令调试

LDB的expr提供了非常强大的Objective-C消息调试敏培机制。你可以使用雀拿喊expr命令直接输出一条Objective-C语句的结果。

例如:

expr ((UIView *)0x7f88a8cc2050).backgroundColor = [UIColor redColor]

expr ((类名强转*)内存地址) 接 oc 消息    

expr -l Swift -- import UIKit

expr -l Swift -- unsafeBitCast(0x7f88a8cc2050, to: UIView.self).backgroundColor = UIColor.red

autolayout图层 打顷野印 
po [[UIWindow keyWindow] _autolayoutTrace]

expr -l objc++ -O -- [[UIWindow keyWindow] _autolayoutTrace]

❺ 免开Xcode,手动开启LLDB调试手机

我们Xcode中的lldb可以调试手机中的应用,是因为手机中的Debugsever开启的相关服务,越狱环境态数中,我们只需要开启Debugsever服务就可以利用lldb远程调试第三方应用了。

我们第灶友一次调试手机的时候,Xcode会把相关版本的Debugsever文件安装到手机上,并且开启Debugsever服务。

在 /APPlication/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 中可以看到对应不同iOS系统版本的镜像文件。

打开dmg文件,进入usr/bin目录可以看到debugserver。这就是Xcode安装到真机中的文件。

通过对隐闭槐比md5查看,会发现是相同的文件。

1、iPhone中开启debugserver服务,并将debugserver依附到app中。

2、Mac上启动LLDB连接iPhone,在Mac电脑上新建一个terminal窗口,启动lldb。

3、连接debugserver

4、退出lldb

5、使用lldb调试手机,请翻页😄: iOS逆向之《LLDB》

简单介绍了手动lldb连接手机的连接方式,反手赞一个吧。

阅读全文

与lldb调试命令相关的资料

热点内容
鸿蒙系统怎么换为安卓系统 浏览:846
pdf已加密如何转为ppt 浏览:4
文件或文件夹怎样命名 浏览:926
悦跑圈算法 浏览:705
骑砍2霸主作战命令 浏览:980
嵌入式常用算法 浏览:548
csgo不输入命令如何切换服务器 浏览:3
安卓手机怎么开启分身微信 浏览:306
苏格拉底的申辩pdf 浏览:80
php手册怎么下载 浏览:758
哪个app可以看全运会男篮直播 浏览:968
excel中图片怎么压缩 浏览:192
电脑上java编译器 浏览:560
中联压缩式垃圾车报价 浏览:778
我的世界hmcl启动器如何开服务器 浏览:127
安卓7如何开启导航键 浏览:395
无法连接科雷服务器怎么解决饥荒 浏览:192
服务器灭火用什么灭火器 浏览:863
压缩机喷出来的油 浏览:89
fpgadsparm单片机 浏览:761