導航:首頁 > 源碼編譯 > 編譯調試是如何實現的

編譯調試是如何實現的

發布時間:2022-09-06 00:15:20

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

⑵ VLC源代碼包如何在linux下編譯+調試

你是為了裝軟體還是為了學習?如果只是裝個軟體,為什麼不裝二進製版的呢(.deb .rpm)。自己編譯挺麻煩的。
如果非想自己編譯,一般都是(我沒編譯過VLC,編譯過其他的,感覺像VLC這么大的軟體應該得較長時間!):先解壓下載的源碼包(tar.bz),然後從終端進入解壓後的源碼目錄,在終端輸入:一 ./configure ;二 make ;三 make install ;
一,好像是為了檢查當前系統參數,也可以在後面加環境變數參數(./configure [options])。如果沒問題便生成makefile
二,根據makefile編譯
三,編譯安裝。(二,可省略)
其實,不管是windows還是linux下載了軟體解壓後第一件事是讀readme!!!!!!!!!!!(其實你應該自己看readme和install,因為別人也不知道你下的軟體什麼情況,這兩個文件一般都會告訴你怎樣安裝以及軟體依賴什麼包!!)
再是讀install ,這是基本素質。要養成自覺性,這在linux下尤為重要!

至於調試,比較麻煩,不過如果只是裝軟體而不改代碼的情況下,不用專門調試(難道你還要用專門工具調試?) 既然說是菜鳥,又稿這么復雜的東西,並且搞這么復雜的東西又不在更專業的地方提問,網路知道一般是解決日常問題的地方!!!
不過一般情況下執行上述三步時會報錯,根據它報錯情況自己想辦法解決,一般來說是依賴不能滿足!

⑶ 如何編譯和調試android源碼中platform/system/core下的代碼

首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。

⑷ 如何實現在線編譯調試代碼

就是執行shell命令進行編譯運行等操作。
看看這里:
http://www.php.net/manual/zh/ref.exec.php

溫馨提示:代碼有風險,編譯需謹慎。做好過濾邏輯以免使得服務掛掉。

⑸ 在VS2010的VC++中如何編譯、鏈接、運行、調試程序

在vc2010中看不到像VC6.0顯式的編譯、連接按鈕了。只有工具欄(啟動調試)和菜單欄(測試)

這些功能包含編譯、鏈接、運行(調試)所有步驟,都一鍵完成。

實際上這些功能是編譯器使用以下工具實現的:

編譯器CL.EXE,將.c/.cpp源代碼編譯成目標代碼.obj,

連接器LINK.EXE,將目標代碼和庫連接生成最終文件;

資源編譯器RC.EXE(.rc)將資源編譯,最終通過連接器存入最終文件.

注意編譯准備:VCVARS32.bat拷貝到當前的workspace下在cmd下執行之後就可以

直接使用這些編譯工具在cmd下編譯.

-----------------------------------------------------------

例子:記事本編輯hello.c,在按照上面要求拷貝到當前目錄下,打開cmd

CL.EXE /c hello.c只編譯不連接

LINK.EXE hello.obj 用到的庫文件,生成可執行文件.如:

LINK.EXE hello.obj user32.lib

RC.EXE Hello.rc

-----------------------------------------

CL.EXE,LINK.EXE,vcvars32.bat所在目錄:假定VS2010使用默認安裝路徑

C:Program FilesMicrosoft Visual Studio 10.0VCin

rc.exe所在路徑:

C:Program FilesMicrosoft SDKsWindowsv7.1ABin

注意:

(1)這些EXE文件在vs2010下可能存在多個不同路徑,但都是一樣的,可以通用

(2)如果電腦上安裝了不同的VS版本,這些文件會不同,注意區分。使用同一VS版本下的文件。

⑹ VS2010里怎麼編譯與調試C++程序

首先建好你的程序,然後按上面的綠色的三角號進行編譯,調試:在程序里打上斷點,然後按f5進行調試,OK

⑺ 怎樣在VC程序編譯過程中進行調試

編譯的時候是不能調試的哦,調試只能在編譯好之後,VC中默認DEBUG模式,在編譯時加入調試信息,然後按下F5即可進行調試,F9下斷點,F10單步跳過, F11單步跟入...SHIFT F5停止調試。。。這是最簡單的操作,詳細網路吧...

⑻ Editplus如何編譯調試程序

這個是需要配置的;在配置EditPlus之前是先將Java的運行環境安裝且調試好,然後進入EditPlus,從菜單「工具(Tools)」; 「配置用戶工具...」進入用戶工具設置,選擇「組和工具條目」中的「Group 1」,點擊面板右邊的「組名稱...」按鈕,將文本Group1」修改成「Java編譯程序」,點擊「添加工具」按鈕,選擇應用程序,
然後就是修改屬性:
1. 添加編譯功能
「菜單文本」里的內容修改為「Javac」;「命令」選擇安裝JDK後的Bin目錄中的編譯程javac.exe,我的JDK 安裝路徑為「Crogram FilesJDKj2sdk1.4.2_08」,那麼此路徑為「CrogramFilesJavajdk1.5.0injavac.exe」;
「參數」選擇「文件名」,即顯示為「$(FileName)」;
「初始目錄」選擇「文件目錄」,顯示為「$(FileDir)」;選擇「捕獲輸出」復選框
2. 添加執行功能
「菜單文本」里的內容修改為「Java」;
「命令」選擇安裝JDK後的BIN目錄中的編譯程序java.exe,路徑為「Crogram FilesJavajdk1.5.0injava.exe」;
「參數」選擇「不帶擴展名的文件名」,即顯示為「$(FileNameNoExt)」;
「初始目錄」選擇「文件目錄」,顯示為「$(FileDir)」;千萬不用選擇「捕獲輸出」復選框!不然不會彈出命令控制台!
這樣就完成了EditPlus的基本設置,可以寫一段Java程序進行調試,通過Ctrl+1進行編譯,使用Ctrl+2運行程序,錯誤提示都會顯示在輸出窗口中,雙擊某一行錯誤信息,EditPlus會自動定位到出錯行,怎麼樣?一個簡單的Java IDE界面就出現了。
要把你寫的.java代碼保存到你的java文件夾里才行

⑼ 如何在Linux 9.0下運用命令進行C語言編程以及編譯、調試、運行

vi或者vim 編輯你的語言,然後用 gcc 編譯, 編譯好之後會在當前目錄生成 a.out 的文件(或者可以使用 -o 參數修改文件名。),執行該文件就可以運行了。

⑽ 在linux里,c程序的編輯、編譯、調試的詳細步驟是什麼

(1)用工具寫好C程序...比如vi
(2)打開終端,進入你存放C語言代碼的路徑 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c編譯成abc可執行文件
(4)在當前目錄終端下 運行生成的abc,例如: ./abc 前面的.不要掉了
後面可以用gdb進行調試,你可以自己去學習...這是最基本的!!

閱讀全文

與編譯調試是如何實現的相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:239
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:391
pdftoeps 瀏覽:495
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:978
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600