1. 程式人生 > >WINDOWS遠端除錯LINUX程式

WINDOWS遠端除錯LINUX程式

1.下載gdb-7.11.tar.gz

在目標機器(linux)和前一步的MSYS裡編譯

PS:一定要使用GDB-7.10以上版本,對遠端編譯支援更好

雙方的GDB版本必須一致否則出現各種問題,32位GDB可以除錯64位GDBSERVER,但反過來不行

2.下載mingw-get-inst-20120426.exe

安裝mingw32-basemingw32-gcc-g++msys-base


安裝完成後將MinGW安裝目錄下的bin目錄設定環境變數

開啟命令列,輸入gdb並回車,如果進入GDB除錯介面,並顯示GDB版本號,說明MinGW的安裝和環境變數設定成功

minGW編譯GDB

進入C:\MinGW\msys\1.0執行msys.bat開啟minGW模擬環境

拷貝gdb-7.11.tar.gz到當前使用者目錄(C:\MinGW\msys\1.0\home\tuxingkai

tar zxvf gdb-7.11.tar.gz

cd gdb-7.11

./configure --target=i686-pc-linux-gnu

#這一步很重要,根據目標機器(linux機器)指定型別,可以根據Linux上的gdb -v來寫

make && make install

安裝成功後將C:\MinGW\msys\1.0\local\bin目錄下的i686-pc-Linux

-gnu-gdb.exe拷貝至C:\MinGW\bin目錄下

PS:目前只能使用該版本的MINGW,該版本可以編譯GDB-7.11。由於目前大部分機器都是64位的,但MINGW一直保持32位。

3.安裝eclipse

https://www.eclipse.org/downloads/上面下載Eclipse IDE for C/C++ DevelopersWindows 64 Bit版本,下載後的檔案是eclipse-cpp-neon-1a-win32-x86_64.zip。解壓下載的壓縮包,雙擊目錄中的eclipse.exe檔案,即可執行Eclipse


4.在Linux上安裝semba

安裝samba服務,命令:yum install samba(或者apt-get)

修改配置檔案:vim /etc/samba/smb.conf;(提醒下修改某個檔案時最好先備份下,這是個不錯的習慣)把[homes]和[privnters]等都註釋掉(也就是把======Share Definitions========下面的的 語句全註釋掉)然後新增下面幾行

[share]
  comment = share        // 共享的資料夾
  path = /home/share     // 共享檔案的目錄
  public = yes           // 是否公共屬性
  writable = yes
  browseable=yes
  available=yes
  guest ok=yes

上面是設定共享目錄,接下來設定下登入使用者和許可權
#security = user    // 註釋掉原來的user
security = share   // 變成共享的

重啟smbd
sudo service smbd restart
看一下smbd監聽的埠,如果顯示相應的埠就代表啟動成功,在Terminal中輸入:
sudo netstat -tlnp | grep smb

4.1注意事項

關閉防火牆: sudo service iptables stop

關閉selinux

vi /etc/sysconfig/selinux

SELINUX=disabled

重啟機器

啟動SAMBA服務:sudo service smb start

5.Windows上對映共享資料夾


6.eclipse在共享資料夾中建立專案HelloWorld

一定要在共享資料夾建立專案否則除錯時無法打斷點

7.LINUX編譯專案

g++ -g -o HelloWorld HelloWorld.cpp

一定要加-g選項,否則沒有除錯資訊不能除錯。

8.LINUX安裝GDB7.11後使用該版本的gdbserver啟動專案

啟動方式:gdbserver ip:port app

installDir/bin/Gdbserver 192.168.1.1:12345 ./HelloWorld

9.eclipse遠端除錯

Eclipse中,右鍵點選HelloWorld專案,選擇“Refresh”更新專案。然後右鍵點選HelloWorld專案,選擇“Debug As”中的“Debug Configurations…”。在彈出的“Debug Configuration”視窗中,選擇新建“C/C++ Remote Application”

新建完成後,在“C/C++ Application”中輸入HelloWorld,然後點選下方的“Select other…”,彈出視窗,勾選視窗中的“Use configuration specific settings”,在“Launchers”中選擇“GDB (DSF) Manual Remote Debugging Launcher”,然後點選“Change Workspace Settings…”,彈出視窗,在“C/C++Remote Application [Debug]”中勾選“GDB(DSF) Manual Remote Debugging Launcher”,點選“Apply”按鈕和“OK”按鈕,返回到之前視窗,點選“OK”按鈕,返回視窗,選擇“Disable auto build”




C++程式遠端除錯起來後,Windows上的Eclipse中預設在程式的main函式處中斷。Linux上的GDBserver會通過監聽埠,發現來自Windows的遠端除錯。

9.1 增加斷點進行遠端除錯

Eclipse中,找到需要加斷點的行,右鍵點選該行,選擇“Toggle Breakpoint”,給該行增加斷點。

點選Resume按鈕(debug頁面中),可以使程式執行到新增的斷點處。然後,可以通過Eclipse工具欄上的“Step Into”“Step Over”“Step Return”等按鈕,進行多種除錯。
(1) “Step Into (F5 )”
:單步執行,遇到子函式就進入並且繼續單步執行。
(2) “Step Over (F6)”
:在單步執行中,在函式內遇到子函式時不會進入子函式內單步執行,而是將子函式整個執行完再停止,也就是把子函式整個作為一步。
(3) “Step Return”
:在單步執行到子函式內時,用step return就可以執行完子函式餘下部分,並返回上一層。

10.除錯動態庫

由於不同的專案需求,有時候需要將程式碼編譯成動態連結庫而不是可執行檔案,通過執行一個可執行程式來呼叫生成的庫,這時候需要將可執行檔案放到samba目錄中與程式碼和編譯出來的庫一起。

C/C++Application填寫可執行程式名(如果工程中沒有該檔案不能進行除錯)


由於是編譯成動態庫,所以沒有main函式,將停止點設定為動態庫的入口函式(根據實際情況填寫)。


10.1注意事項

開始除錯時會eclipse提示找不到動態庫,此時需要將可執行檔案(icebox)以及動態庫(libtsd.so)所需要的所有庫檔案拷貝到工程目錄下。

在工程目錄下建一個lib資料夾,將需要的庫檔案拷貝進去,右鍵工程選擇refresh一下。

即可完成設定。

相關推薦

WINDOWS遠端除錯LINUX程式

1.下載gdb-7.11.tar.gz 在目標機器(linux)和前一步的MSYS裡編譯 PS:一定要使用GDB-7.10以上版本,對遠端編譯支援更好 雙方的GDB版本必須一致否則出現各種問題,32

windows下使用IDA遠端除錯linux(ubuntu)下編譯的程式

1.背景 真機:win7 x64 ida pro 6.8 虛擬機器:ubuntu 16.04 x64 現在在win7下遠端除錯ubuntu內自己編譯的程式。 2.ubuntu內編譯程式 1.桌面建立test資料夾,並建立hello.c檔案 寫入程式

Linux下CodeBlocks遠端除錯ARM程式環境搭建

Codeblocks:Release 8.02、宿主機:ubuntu10.04、開發板:嵌入式linux作業系統。 1 Codeblocks配置交叉編譯環境 如下圖所示,由上到下的選擇,1處直接選擇即可。2處是你交叉編譯器安裝位置,3 4 5 6 可以在你交叉編譯器安

使用VisualStudioCode遠端除錯NodeJS程式

Kagula 2018-08-02 環境: [1]NodeJS v8.9.1 [2]Visual Studio Code 1.25.1 [3]有兩臺計算機:    第一臺計算機上裝了linux系統, 執行nodeJS程式.    我們稱之為遠端計算機,

Windows遠端連線Linux介面的兩種方法

使用VNC連線,最簡單. 首先在linux端鍵入命令安裝vncserver #yum -y install vnc *vnc-server* 然後鍵入命令設定vncserver密碼 #vncpasswd 然後鍵入命令來檢視當前的vncserver埠 #vncserver 可以看

用vnc實現windows遠端連線linux桌面

網路遙控技術是指由一部計算機(主控端)去控制另一部計算機(被控端),而且當主控端在控制端時,就如同使用者親自坐在被控端前操作一樣,可以執行被控端的應用程式,及使用被控端的系統資源。 VNC(Virtual Network Computing)是一套由AT&T實驗室所開發的可操控遠端的計算機的軟體,其

利用VS2017編譯、除錯Linux程式

VS2017提供了交叉編譯的功能。即可在windows機器上使用VS方便的編輯、除錯Linux機器上的程式。 大致流程是這樣的: 1、在windows機器上編輯程式碼; 2、VS通過SSH將程式碼傳送到Linux機器上進行編譯、連結; 3、呼叫Linux機器上的GDB

Eclipse進行遠端除錯linux 環境的tomcat配置 更新maven web專案

在網上找了找關於遠端除錯的配置,記錄在這裡以備後續查詢! 平常我們都是用windows開發,但是有時候需要將tomcat部署到linux下去執行,比如執行shell指令碼。這個時候我們就需要在linux環境下進行除錯。我們可以利用myeclipse的遠端除錯功能,來進行操

VS2017 編譯除錯 Linux 程式

參考文件 官方文件1: 官方文件2: 看以上2個文件其實完全夠搭好了。 但一篇文章不能只這些字。 下面再詳細寫下,配幾張圖吧。 準備工作 你需要一臺 Linux 機(可以是物理機、虛擬機器、win10 的 linux 子系統) Lin

12--配置IDEA遠端除錯Hadoop程式(Hadoop HA下)

public class MyUtils { public static void deleteDir(Configuration conf, String dirPath) throws IOException{ FileSystem fs=FileSystem.get(conf)

eclipse遠端除錯Linux下tomcat

步驟如下: 1.進入tomcat安裝路徑,進入bin目錄         2.開啟目錄下的catalina.sh檔案,找到JPDA_ADDRESS="8000",8000代表遠端除錯埠,可以更改成其他沒有被佔用的埠。如下所示               3.以debug模

Windows遠端連線Linux桌面

本測試使用的是Ubuntu,因unity桌面有點大,遠端帶起有點慢,所以換用xfce4桌面,順利地實現遠端多使用者桌面使用無壓力。 先安裝好xrdp、vnc4server、xfce4: sudo apt install xrdp sudo apt install vnc4

【轉】Windows遠端登陸Linux桌面的方法

前段時間一直在做Linux的遠端桌面,於是想了很多的方法,現在看來,這實在是太簡單了。這裡介紹幾種簡單的方法。 第一種:putty。其實這個工具並不是桌面客戶端,它只不過是一個遠端登陸Linux的命

windows + myeclipse 除錯 linux + tomcat 的java web服務 配置方式

一.linux tomcat配置和啟動 1.catalina.sh第一行新增 declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" 2

實戰 windows7 下 eclipse 遠端除錯 linux hadoop

恩,之所以有這篇部落格,是因為最近又有童鞋諮詢怎麼在 windows 7 下用eclipse遠端除錯部署在linux下的hadoop,其實我自己不這麼混搭的,既然有童鞋這麼問了,那我就索性隨著折騰一把了。 首先說明幾點: 遠端除錯對於本地hadoop版本、遠端hadoop版本、eclipse版本都有極

vs2010開發linux平臺C++程式開發環境配置+用vs2010除錯linux程式 ----VisualGDB 使用教程

VIM 其實配置為IDE後,其實也是相當不錯的,編輯功能相當強大,偶爾看到有人提到了本文中的寫程式碼方式,於是就想嚐嚐新。 搜尋了一下,這個方式的帖子不是很多,稍微花了點時間,摸索了下,還行,在VS2010下編寫程式碼,到ubuntu下編譯,一切OK! 主機:

移植gdb工具-遠端除錯qt程式

轉自http://blog.163.com/[email protected]/blog/static/8725911920137685232272/ 一開始是根據此教程編譯http://www.qtcn.org/bbs/read-htm-tid-58074-ds

使用Eclipse遠端除錯Linux伺服器Tomcat專案

工作這些年,經常會出現這樣的情況,程式執行在本機是正常的,但是放到伺服器上就出現各種bug,且伺服器通用都是linux伺服器,不方便除錯,很難排查問題,這時候就需要 用到Eclipse的遠端除錯功能。說來慚愧,博主也是最近才知道這個功能,因此整理出這個帖子,以供大家分享。

用eclipse遠端除錯Java程式

最近用Java做專案時一個功能在本機除錯好好的,一部署到伺服器上就不行了,百思不得其解,於是請教老大。 “遠端debug一下”,老大雲淡風輕。 “程式碼部署到伺服器上了還能遠端debug?”,而我一臉懵逼。 老大稍作鼓搗,果然遠端除錯上了!

用vs2008編寫和除錯linux程式 ----VisualGDB 使用教程

一準備工作 1 準備一臺Linux機器用來編譯程式,我用的是虛擬機器安裝的CentOS網路設定成橋接模式      (1)安裝並開啟SSH      (2)安裝 gcc g++ gdb      (3)關閉防火牆或者開啟允許SSH對外訪問的網路埠 2下載 VisualGDB