1. 程式人生 > >利用Eclipse和Sourcery G++ Lite通過GDBserver在Windows下單步除錯嵌入式Linux應用程式

利用Eclipse和Sourcery G++ Lite通過GDBserver在Windows下單步除錯嵌入式Linux應用程式

我的開發平臺:

上位機:WIN7 32bit Home basic

下位機:AM3517, Linux 2.6.37 

需要用的軟體資源:

1.      arm-2012.09-64-arm-none-linux-gnueabi.exe  (sourcery G++ Lite)

2.      jdk-8u5-windows-i586.exe        (Java Jdk)

3.      eclipse-standard-kepler-SR2-win32.zip(Eclipse)

4.      Gdbserver  (下位機)

安裝sourcery G++ Lite 交叉編譯鏈for windows的安裝包

假設安裝到C:\ProgramFiles\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux,

注意PATH一定要選擇新增到系統PATH裡,如下圖


安裝JDK


開啟Eclipse,Help -> Install New Software,,在列表裡,ProgrammingLanguage->C/C++ programming tool


軟體安裝完畢。

匯入你以前的下位機程式,Makefile Project with Existing Code


自動匯入工程後,工程目錄右鍵屬性,Properties(Alt+enter), 在Build裡,選擇自定義編譯指令,cs-make如圖。


Build -> Build Project


把生成的可執行檔案(我這裡是GCC_test),拷貝到下位機板子上。

在下位機linux上,拷貝gdbserver到/bin/     (GDBserver的移植比較容易,這裡就略過了,網友可以自行到網上去找)

GCC_test拷貝到/home/

電腦和下位機都要連線乙太網,用於GDB遠端除錯

假設PC的IP:192.168.100.111

   Arm:192.168.100.19

在板子上執行

/home # gdbserver 192.168.100.19:2345  GCC_test

Process GCC_test created; pid = 610

Listening on port 2345

在Eclipse裡,Run->Debug Configurations…

雙擊C/C++ Remote Application,會自動建立一個工程Debug配置,




點選Debug,就能進入除錯介面,程式自動停在Main函式入口處


同時,在下位機,

/home# gdbserver 192.168.100.19:2345 GCC_test

Process GCC_test created; pid = 610

Listening on port 2345

Remote debugging from host 192.168.100.111

接下去就可以單步除錯,設定斷點,檢視暫存器,檢視變數,控制程式跳轉等,非常方便。

此方法關鍵在於sourcery G++ lite提供了arm-none-linux-gnueabi-gdb.exe,可以直接在windows下除錯遠端的GDBserver執行的程式,通過Eclipse的除錯介面,可以做到在windows下單步除錯嵌入式linux的程式,也可以在windows下交叉編譯下位機執行的arm linux程式。實在是非常方便的一種手段。

缺點在於,一些shared library沒有除錯資訊,當你在呼叫庫函式時,沒法暫停,解決方法是編譯帶除錯資訊的shared library,貌似工作量太大,也無必要,目前的這些手段足夠我們除錯自己的應用程式了。

相關推薦

利用EclipseSourcery G++ Lite通過GDBserver在Windows下單除錯嵌入式Linux應用程式

我的開發平臺: 上位機:WIN7 32bit Home basic 下位機:AM3517, Linux 2.6.37  需要用的軟體資源: 1.      arm-2012.09-64-arm-none-linux-gnueabi.exe  (sourcery G++ L

【Python求助】在eclipsepycharm中,通過adb install安裝中文名字APK時老是報錯,如何解決

style com all auto RoCE mod python lin sage 1 # -*- coding: utf-8 -*- 2 import os 3 import sys 4 import subprocess 5 import time 6 from

利用Eclipse http 協議將原生代碼上傳到 華為雲

使用eclipse內建git外掛通過http協議上傳程式碼到華為雲。 步驟如下: 在雲端建立倉庫,設定訪問方式為http,並修改密碼。 Eclipse 配置:建立本地倉庫, 如果 上傳不成功,顯示 reject to

Sourcery G++ Lite 一個arm開發工具

Sourcery G++ Lite  一個arm開發工具 Sourcery CodeBench Lite Edition Sourcery CodeBench (formerly Sourcery G++) Lite Edition is a free, unsup

Mac下利用EclipseADT外掛搭建Android開發環境

一.下載並安裝JDK,然後配置JDK環境(Mac已經幫你搞定了) 在終端驗證:$ javac -version 二.下載並安裝Eclipse 以上步驟就搭建好了開發普通的Java程式。 下面的步驟來搭建開發Android程式的環境:下載Android

關於CodeSourcery Sourcery G++

以前在做android的時候經常回去CodeSourcery的網站上下載Sourcery G++ 的編譯器,也沒有太注意這個網站,只是認為這個是一個專門提供編譯器的網站。但是最近去下載編譯器的時候注意到網站變樣了,所以找了一下資料瞭解了一下這個公司。 CodeSourc

eclipse 遠端圖形化除錯嵌入式linux c arm(beaglebone black),解決常見除錯問題

1. eclipse遠端除錯的具體配置: 參考該網頁上的視訊http://www.eeboard.com/bbs/thread-15454-1-3.html (國外以小哥做的,講的非常詳細) 2. eclipse debug的具體設定說明: (對於遠端除錯的細節說明,防止

linux應用程式中的延時定時器

筆記:在linux應用程式中延時有sleep()、msleep()和usleep()函式之類的延時,也有如下形式的延時: struct timeval delay; delay.tv_sec = sleepSecond; delay.tv_usec =

通過Windows Visual Studio遠端除錯WSL2中的.NET Core Linux應用程式

最近兩天在Linux中除錯.NET Core應用程式,同時我發現在Linux中除錯.NET Core應用程式並不容易。一直習慣在Visual Studio中進行編碼和除錯。現在我想的是可以簡單快速的測試.NET Core應用在Linux。所以通過本篇文章我們能瞭解到如何在Windows中使用Visual St

#OpenCV##MFC#利用MFCOpenCV通過系統對話框打開和保存圖片

代碼 pat pda show 選擇 gif buffer length anti 打開圖片: void CImageProDlg::OnImageopen() { // TODO: 在此添加命令處理程序代碼 Invalidate(); CFil

利用eclipse工具反向生成hibernate配置檔案,domain類對映檔案

首先要意識到eclipse是一個整合開發環境,要想實現更多的功能,就必須下載好相關的外掛 1.下載外掛 點選help->install new software,輸入相應的網址(對應的自行百度),這裡是http://download.jboss.org/jbossid

利用Eclipse建立maven專案並生成META-INFWEB-INF目錄

1、使用eclipse外掛建立一個web project 首先建立一個Maven的Project如下圖 我們勾選上Create a simple project (不使用骨架) 這裡的Packing 選擇 war的形式 由於packing是w

Ubuntu16.04下利用gccg++進行C/C++編輯編譯

雙擊檔案,開始編輯,還是我們最最經典的Hello World先確定安裝了vim 和gcc (c語言)或者g++(c++)  如果沒有安裝可以在終端輸入以下命令:  sudo apt-get install build-essential  sudo apt-get insta

通過程式設計幾何圖形(Shape)、矩形(Rectangle)、圓形(Circle)、正方形(Square)幾種型別, 能夠利用介面多型性計算幾何圖形的面積周長並顯示。

interface Shape {//宣告介面Shapefinal float PI = 3.14f; // 定義常量圓周率abstract void area();//定義抽象方法面積abstract void perimeter();//定義抽象方法周長}clas

利用Expressejs編寫簡單頁面

light logs 開發 ges 下載 highlight 視圖 script dem 1、創建臨時文件夾ejsdemo $ mkdir ejsdemo  2、進入ejsdemo 初始化項目 $ npm init 3、安裝express   $ npm

EclipseMyEclipse常出現的錯誤總結

導包 ren project 支持 pro mil cli lib prop 1. Myeclipse中導入的項目中按住快捷鍵(ctrl)鍵進行聯想時,無法聯想。解決方案:(1)可能缺少jar包,導包;(2)找.project文件,在其中加入如下代碼: Java代碼 收藏

使用Android design support library在EclipseAndroid Studio

content mod img span ont tracking details con man 背景:為了在低版本號下使用Android 5.0的一些新特新 Eclipse篇: 1、將Android Manager中的Android support librar

利用SharePrefrenceGson實現實體類的保存與獲取

getclass 類繼承 brush gets static 實現 highlight model htm 實現需要Gson獲者其他能將實體類轉換成json的jar包 接下來是主要方法: 保存實體類 public static void putClass(ModelBa

利用 keyCode 正則 控制數字輸入框

只能輸入數字 1.8 不能 scrip repl type htm length ace <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

手機商城第四天,利用GridViewviewpager實現頻道按鈕熱門活動圖片的展示

手機商城第四天 利用gridview和viewpager實現頻道按鈕和熱門活動圖片的展示 代碼已經上傳碼雲,有興趣的小夥伴可以下載看看: https://git.oschina.net/joy_yuan/ShoppingMall 下面是這次的效果圖:其中哪些服飾、遊戲、動漫等欄目