當前位置:編程學習大全網 - 源碼下載 - 如何在Windows下編譯或調試MySQL

如何在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

  • 上一篇:什麽是“博客”?
  • 下一篇:什麽是erp進銷存管理系統
  • copyright 2024編程學習大全網