當前位置:首頁 » 編程軟體 » 編譯調試命令

編譯調試命令

發布時間: 2022-08-17 19:51:32

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

B. 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)」;千萬不用選擇「捕獲輸出」復選框!不然不會彈出命令控制台!
要把寫的.java代碼保存到你的java文件夾里才行。

C. 如何編譯和調試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命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。

D. 如何在Windows的命令行下進行程序編譯和gdb調試

1、概念介紹。

1、Windows下的cmd就是Windows的命令行終端,其中的一些命令和Ubuntu的有些許區別,不過在這個博客的范疇中沒有涉及。
2、Windows的環境變數,大概可以說是如果設置好了在path路徑裡面了,就可以直接在cmd命令行里直接調用程序。

2、配置操作

1、選擇計算機,右鍵,選擇「屬性」
2、「高級系統設置」 –> 「環境變數」

3、選擇「環境變數」裡面的「系統變數」 ,選擇path, 編輯

4、添加環境變數。注意:最好不要動原來的東西,在原來的東西的基礎上在前面或後面加上一個分號,然後把Dev C++安裝目錄下的MinGW64/bin文件夾的路徑復制到環境變數裡面去。。(此處是巧借了dev的自帶編譯器,如果各位以其他方法找到了新版的MinGW文件的話,也可以配置成自己喜歡的)注意,路徑中不要出現中文,否則可能出現有趣的問題

(ps:博主這邊用的就不是dev 的MinGW64包了,而是師兄傳下來的 :))

4、一路確定,配置完成。

3、使用操作

在你代碼所在的文件夾,按住shift加右鍵,點擊「在此處打開命令窗口」,進入到cmd終端,接下來就可以愉快地使用g++,gcc編譯器,和gdb調試器了。

4、後期優化

大家還可以給自己配一個用的順手的編輯器,比如sublime,gvim,(甚至是notepad ,hhh)同理把它放在環境變數里,那麼也可以在cmd中直接打開,這時在win下的編程過程就和Ubuntu的非常像了。。

5、備注

1、此處以win7為例,其他版本的應該大同小異。

2、另附片面的gdb調試方法

3、使用編輯器和命令行編譯的方法對於了解程序的運行過程更加有好處,但是從方便性上的確不如IDE,特別是用熟了vs的同學們就應該更能體會得到,所以各有利弊,大家自己選擇最符合自己口味的編程環境就好:)

E. C語言的按照標識符、關鍵字、常用編譯指令有哪些

我們可以在C源程序中插入傳給編譯程序的各中指令,這些指令被稱為預處理器指令,它們擴充了程序設計的環境。現把常用的預處理命令總結如下:
1. 預處理程序
按照ANSI標準的定義,預處理程序應該處理以下指令:
#if #ifdef #ifndef #else #elif
#endif
#define
#undef
#line
#error
#pragma
#include
顯然,上述所有的12個預處理指令都以符號#開始,,每條預處理指令必須獨佔一行。
2. #define
#define指令定義一個標識符和一個串(也就是字元集),在源程序中發現該標識符時,都用該串替換之。這種標識符稱為宏名字,相應的替換稱為宏代換。一般形式如下:
#define macro-name char-sequence
這種語句不用分號結尾。宏名字和串之間可以有多個空白符,但串開始後只能以新行終止。
例如:我們使用LEFT代表1,用RIGHT代表0,我們使用兩個#define指令:
#define LEFT 1
#define RIGHT 0
每當在源程序中遇到LEFT或RIGHT時,編譯程序都用1或0替換。
定義一個宏名字之後,可以在其他宏定義中使用,例如:
#define ONE 1
#define TWO ONE+ONE
#define THREE ONE+TWO
宏代換就是用相關的串替代標識符。因此,如果希望定義一條標准錯誤信息時,可以如下定義:
#define ERROR_MS 「Standard error on input \n」
如果一個串長於一行,可在行尾用反斜線」\」續行,如下:
#define LONG_STRING 「This is a very very long \
String that is used as an example」
3. #error
#error指令強制編譯程序停止編譯,它主要用於程序調試。#error指令的一般形式是:
#error error-message
注意,宏串error-message不用雙引號包圍。遇到#error指令時,錯誤信息被顯示,可能同時還顯示編譯程序作者預先定義的其他內容。
4. #include
程序中的#include指令要求編譯程序讀入另一個源文件。被讀入文件的名字必須用雙引號(「」)或一對尖括弧(<>)包圍,例如:
#include 「stdio.h」
#include <stdio.h>
都使C編譯程序讀入並編譯頭文件以用於I/O系統庫函數。
包含文件中可以包含其他#include指令,稱為嵌套包含。允許的最大嵌套深度隨編譯器而變。
文件名被雙括弧或尖括弧包圍決定了對指定文件的搜索方式。文件名被尖括弧包圍時,搜索按編譯程序作者的定義進行,一般用於搜索某些專門放置包含文件的特殊目錄。當文件名被雙括弧包圍時,搜索按編譯程序實時的規定進行,一般搜索當前目錄。如未發現,再按尖括弧包圍時的辦法重新搜索一次。
通常,絕大多數程序員使用尖括弧包圍標準的頭文件,雙引號用於包圍與當前程序相關的文件名。
5. 條件編譯指令
若干編譯指令允許程序員有選擇的編譯程序源代碼的不同部分,這種過程稱為條件編譯。
5.1#if、#else、#elif #endif
條件編譯指令中最常用的或許是#if,#else,#elif和#endif。這些指令允許程序員根據常數表達式的結果有條件的包圍部分代碼。
#if的一般形式是:
#if constant-expression
Statement sequence
#endif
如#if後的常數表達式為真,則#if和#endif中間的代碼被編譯,否則忽略該代碼段。#endif標記#if塊的結束。
#else指令的作用與C語言的else相似,#if指令失敗時它可以作為備選指令。例如:
#include <stdio.h>
#define MAX 100
Int main(void)
{
#if MAX>99
printf(「Compiled for array greater than 99.\n」);
#else
printf(「Complied for small array.\n」);
#endif
return 0;
}

F. 匯編語言初學者怎樣調試代碼

如果用MASM編譯的話,先跳轉到MASM的目錄下,再輸入masm
[文件名.asm]後按幾下Enter,完成編譯,然後輸入link
[文件名.obj]任然按幾下Enter,鏈接生成EXE文件.最後如果你想運行程序,則直接輸入文件名Enter.調試的話用debug
[文件名.exe],

G. 如何優雅的在 macOS 上編譯調試 C++ 程序

使用vim新建一個c++程序文件,例如test.cpp
編輯你的c++代碼,然後保存退出
使用g++命令來編譯c++程序,如果編譯成功,則沒有任何提示,如果失敗,會出現程序錯誤的提示
直接執行剛剛編譯的c++程序

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

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

熱點內容
php數據類型轉換 發布:2024-04-25 14:15:17 瀏覽:750
windows調度演算法 發布:2024-04-25 14:14:28 瀏覽:456
下載喵星大作戰需要什麼配置 發布:2024-04-25 14:14:22 瀏覽:304
贛州伺服器數據存儲 發布:2024-04-25 14:13:41 瀏覽:889
控制演算法高手 發布:2024-04-25 13:57:10 瀏覽:472
文字游戲源碼php 發布:2024-04-25 13:57:08 瀏覽:881
安卓手機校準屏幕在哪裡 發布:2024-04-25 13:53:02 瀏覽:911
安卓app會閃退怎麼解決 發布:2024-04-25 13:48:44 瀏覽:644
阿里雲伺服器能用vmware嗎 發布:2024-04-25 13:33:23 瀏覽:732
1616源碼 發布:2024-04-25 13:33:19 瀏覽:81