ubuntu下aarch64-linux-gnu(交叉編譯) gdb/gdbserver

ubuntu下aarch64-linux-gnu(交叉編譯) gdb/gdbserver

gdb是一款開源的、強大的、跨平臺的程序調試工具。主要用于在程序運行時對程序進行控制和檢查,如設置斷點、單步執行、查看變量值、修改內存數據等,從而幫助開發者定位和修復代碼中的錯誤。
gdbserver則是GDB的一個輔助工具,主要用于調試嵌入式系統或者沒有圖形界面的目標系統上的程序。GDBServer在目標設備上運行,將目標程序的狀態信息通過網絡發送給宿主機上的GDB,使GDB能夠像調試本地程序一樣調試遠程的目標程序。這樣,開發人員就可以在宿主機上使用GDB的各種功能,而不需要在目標設備上安裝和運行復雜的調試環境。
說明:本教程適用于ubuntu環境下交叉編譯gdbserver,目標架構為aarch64小端。

一、準備階段

根據需求,準備gdb源代碼和aarch64-linux-gnu交叉編譯工具鏈。
博主選擇的gdb源代碼以及aarch64-linux-gnu交叉編譯工具鏈分別是,gdb8.3gcc-arm-8.3-2019.02-x86_64-aarch64-linux-gnu.tar.xz(aarch64小端)

gdb源代碼地址:https://ftp.gnu.org/gnu/gdb/

在這里插入圖片描述

交叉編譯工具鏈下載地址:https://developer.arm.com/downloads/-/gnu-a

在這里插入圖片描述

注意:在選擇交叉編譯工具鏈時,一定要明確目標架構大小端。

二、編譯安裝gdb

首先通過configure配置gdb編譯選項,再進行編譯和安裝。

(一)、配置gdb編譯選項

cd gdb8.3
./configure --target=aarch64-linux-gnu --prefix=/home/hhl/gdbserver
參數說明:--target 目標架構--prefix 自定義gdb編譯安裝路徑

在這里插入圖片描述

(二)、編譯gdb

cd gdb8.3
make -j8
參數說明:--j8 并行編譯(8

在這里插入圖片描述

(三)、安裝gdb

cd gdb8.3
make install

在這里插入圖片描述
在這里插入圖片描述

三、交叉編譯gdbserver
(一)、配置gdbserver編譯選項

由于gdbserver需要移植到目標環境中運行,為了避免環境的影響,因此采取靜態編譯的方式。

cd gdb8.3/gdb/gdbserver
LDFLAGS="-static" ./configure --target=aarch64-linux-gnu --host=aarch64-linux-gnu  --disable-shared --enable-static 
參數說明:LDFLAGS="-static"  靜態編譯--target 目標架構--prefix 自定義gdb編譯安裝路徑--disable-shared --enable-static 可選參數,靜態編譯。

(二)、交叉編譯gdbserver

使用絕對路徑正確配置gcc和g++的路徑。

make CC=/home/hhl/gcc-arm-8.3-2019.02-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/home/hhl/gcc-arm-8.3-2019.02-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -j8
參數說明:CC gcc路徑cXX g++路徑

在這里插入圖片描述

交叉編譯成功后,gdbservergdb8.3/gdb/gdbserver路徑下

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44123.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

密態計算,大模型商用數據瓶頸的新解法?

大數據產業創新服務媒體 ——聚焦數據 改變商業 大模型邁向產業的深度應用,首要挑戰是高質量數據供給和安全流通。正如在今年的世界人工智能大會上,產學研屆多位專家達成的共識是,數據決定了AI能力的上限。 在實踐中,行業大模型難…

C#創建windows服務程序

步驟 1: 創建Windows服務項目 打開Visual Studio。選擇“創建新項目”。在項目類型中搜索“Windows Service”并選擇一個C#模板(如“Windows Service (.NET Framework)”),點擊下一步。輸入項目名稱、位置和其他選項,然后點擊“創…

Pyecharts繪制熱力圖的說明+代碼實戰

引言 熱力圖在數據可視化中是一種強大的工具,可以直觀地展示數據的分布情況和變化趨勢。Pyecharts是一個基于Echarts的Python可視化庫,提供了豐富的圖表類型,包括熱力圖。在本文中,我們將深入探討Pyecharts繪制多種炫酷熱力圖的參…

Qt 創建的窗口一閃而過【已解決】

Qt 創建的窗口一閃而過 引言一、詳細的解決方案 - 附代碼二、參考博文 引言 創建的窗口一閃而過,就是創建完立馬被銷毀了,常見情況是在一個函數中創建窗口并show() - 即創建在了棧上,函數結束局部變量(窗口)自動被釋放。主流的解決方法有兩種…

如何使用css把input框的number屬性的右側小按鈕去掉

在HTML中&#xff0c;當<input>元素的type屬性被設置為number時&#xff0c;瀏覽器通常會默認顯示一個小的上下箭頭按鈕&#xff08;通常位于輸入框的右側&#xff09;&#xff0c;用于允許用戶通過點擊增加或減少輸入的值。然而&#xff0c;有時候為了設計的一致性或其他…

C語言快速入門

Linux C 的編譯流程 C 編譯器 gcc GNUmsvc windowsclang 蘋果intel…cc 默認Linux c語言編譯器 程序設計語言分類 編譯型 C、C、java 把源代碼轉換成機械指令&#xff08;X86 電腦、ARM 手機&#xff09;編譯做了類型安全檢查&#xff0c;安全性能高靈活差 解釋型 Python、…

三生隨記——毛巾的詛咒

在一個沉悶的傍晚&#xff0c;李明拖著疲憊的身軀回到了家中。一整天的工作讓他精疲力竭&#xff0c;此刻他只想趕緊洗個熱水澡&#xff0c;然后躺在舒適的床上&#xff0c;好好放松一下。 走進浴室&#xff0c;他打開淋浴&#xff0c;溫暖的水流傾灑在身上&#xff0c;疲憊感…

Oracle 利用觸發器鎖住代碼防止他人改動

利用觸發器鎖住自己的代碼防止他人改動 create or replace trigger LockSourcebeforecreateon SCHEMA declare beginif SYS_CONTEXT(USERENV,OS_USER) 自己的機器名thenreturn;end if;if ora_dict_obj_name in (xxxx1_PACKAGE,xxxx2_PACKAGE)thenraise_application_error(-2…

每日刷題(二分查找,匈牙利算法,逆序對)

目錄 1.Sarumans Army 2.Catch That Cow 3.Drying 4.P3386 【模板】二分圖最大匹配 5. Swap Dilemma 1.Sarumans Army 3069 -- Sarumans Army (poj.org) 這道題就是要求我們在給的的位置放入 palantir&#xff0c;每個 palantir有R大小的射程范圍&#xff0c;要求求出最少…

生產訂單執行明細表二開增加字段

文章目錄 生產訂單執行明細表二開增加字段業務背景業務需求方案設計詳細設計和實現標準報表引入到應用標準報表和過濾擴展添加字段創建插件&#xff0c;掛載插件新建類庫 Krystal.K3.SCGL.App.Report&#xff0c;添加引用創建類&#xff0c;繼承報表原插件重寫BuilderReportSql…

【微服務】Spring Cloud中如何使用Eureka

文章目錄 強烈推薦引言主要功能Eureka 的架構使用示例Eureka Server 配置Eureka Client 配置示例服務服務發現調用示例 Spring Cloud如何實現服務的注冊?1. 搭建 Eureka 服務注冊中心2. 配置服務注冊到 Eureka3. 驗證服務注冊 總結應用場景1. 動態服務發現2. 負載均衡3. 服務治…

Android C++系列:Linux進程間關系

1. 終端 在UNIX系統中,用戶通過終端登錄系統后得到一個Shell進程,這個終端成為Shell進 程的控制終端(Controlling Terminal),在前面文章我們說過,控制終端是保存在PCB中的信 息,而我們知道fork會復制PCB中的信息,因此由Shell進程啟動的其它進程的控制終端也是 這個終端。…

OpenCV進行視頻分析(光流、目標跟蹤)----20240710

一、OpenCV進行光流分析 # 光流分析螞蟻軌跡 import numpy as np import cv2if __name__ == __main__:cap = cv2.VideoCapture(./pictures/ant.mp4)# ShiTomasi 角點檢測參數feature_params = dict(maxCorners=100

基于Java中的SSM框架實現水稻朔源信息系統項目【項目源碼】

基于Java中的SSM框架實現水稻朔源信息系統演示 SSM框架 SSM框架是基于Spring、SpringMVC以及Mybatis實現的針對JAVA WEB端應用的開發框架&#xff0c;通過SSM框架結構可以實現以上三種框架的優點集合&#xff0c;從而實現更加高效便捷的系統開發和呈現。該框架結構通過Spring框…

PolarisMesh源碼系列——服務如何注冊

前話 PolarisMesh&#xff08;北極星&#xff09;是騰訊開源的服務治理平臺&#xff0c;致力于解決分布式和微服務架構中的服務管理、流量管理、配置管理、故障容錯和可觀測性問題&#xff0c;針對不同的技術棧和環境提供服務治理的標準方案和最佳實踐。 PolarisMesh 官網&am…

main.cpp程序執行流程圖

當然&#xff0c;我會為你繪制一個程序執行流程圖&#xff0c;并用中文注釋來解釋 main.cpp 的代碼邏輯思想和執行流程。 程序執行流程圖 開始|V 初始化|V 打開攝像頭 (VideoCapture cap(0))|V 進入主循環 (while (true))|V 捕獲圖像 (cap >> srcImage)|V 圖像是否為空…

280個地級市金融集聚水平數據(2006-2022年)

2006年-2022年280個地級市金融集聚水平數據整理資源-CSDN文庫 金融集聚水平&#xff1a;衡量地級市金融發展的新維度 金融集聚水平是衡量一個地區金融發展程度的重要指標&#xff0c;它反映了金融機構、金融資源、金融服務在特定時間和空間的集中程度。這一指標的評估可以從多…

根據H在有限域GF(2^m)上求解生成矩陣G

原理 有時間再補充。 注1&#xff1a;使用高斯消去法。如果Py不為單位陣&#xff0c;則說明進行了列置換&#xff0c;此時G不是系統形式。 注2&#xff1a;校驗矩陣H必須是行滿秩才存在對應的生成矩陣G&#xff0c;且生成矩陣G通常不唯一。 matlab實現&#xff1a;只做列置…

視語坤川大模型智能體平臺亮相2024世界人工智能大會

7月4日-7月7日&#xff0c;以“以共商促共享以善治促善智”為主題的2024世界人工智能大會&#xff08;WAIC 2024&#xff09;在上海舉辦&#xff0c;世界頂級專家學者、知名企業代表、政界人士、高校組織等齊聚上海&#xff0c;共商發展、共話未來。 作為大會的重磅環節——昇…

Python面試題:編寫一個 Python 腳本來讀取 Excel 文件

要在 Python 中讀取 Excel 文件&#xff0c;可以使用 pandas 庫&#xff0c;這個庫提供了強大的數據處理和分析功能&#xff0c;并且支持讀取 Excel 文件。你還需要 openpyxl 庫來支持讀取 .xlsx 格式的 Excel 文件。以下是如何編寫一個腳本來讀取 Excel 文件的示例&#xff1a…