導航:首頁 > 程序命令 > 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調試命令相關的資料

熱點內容
程序員學習網站論壇有哪些 瀏覽:157
滑板解壓視頻大全集 瀏覽:62
s7300編程步驟 瀏覽:366
中央空調壓縮機更換 瀏覽:551
javaftp發送文件 瀏覽:784
不允許列印的pdf 瀏覽:666
海康威視攝像頭加密驗證碼是多少 瀏覽:537
地圖編譯完成無法進入游戲 瀏覽:92
快速化解壓力的方法 瀏覽:616
安卓手機什麼軟體可以批量刪除通訊錄好友 瀏覽:230
小米開桌面文件夾慢 瀏覽:703
javajdbcsql 瀏覽:242
怎麼把本機當成伺服器 瀏覽:935
路由器加密ip 瀏覽:989
電腦微信聊天記錄怎麼加密了 瀏覽:792
免費學畫畫的app哪個最好 瀏覽:966
怎麼新建一個php文件 瀏覽:570
寧波python 瀏覽:348
美團程序員椅子 瀏覽:838
增加伺服器是什麼意思 瀏覽:687