日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ARM架構(gòu)Linux下的glibc6調(diào)試工具(armlinuxlibc6dbg)

在ARM架構(gòu)的Linux系統(tǒng)上,glibc6是一種重要的C標(biāo)準(zhǔn)庫,它為程序員提供了大量的標(biāo)準(zhǔn)C函數(shù)。但是在使用過程中也常常會出現(xiàn)一些問題,例如程序運行異常、段錯誤等。這時就需要借助一些調(diào)試工具來找出問題所在,本文將介紹一些常用的。

10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有銅川免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1. gdb

gdb是GNU調(diào)試器的簡稱,是一種強大的調(diào)試工具。它可以對程序進行單步跟蹤、打印變量的值、修改程序的狀態(tài)等功能,幫助程序員定位程序中的錯誤。

使用gdb調(diào)試程序的流程大致如下:

1)編譯程序時加上-g參數(shù),生成可調(diào)試的程序:

$ gcc -g -o program program.c

2)啟動gdb:

$ gdb program

3)設(shè)置斷點:

(gdb) break mn

4)運行程序:

(gdb) run

5)執(zhí)行單步調(diào)試:

(gdb) next

6)打印變量的值:

(gdb) print var

7)修改變量的值:

(gdb) set var=10

8)退出gdb:

(gdb) quit

除了以上基本用法外,gdb還可以對內(nèi)存進行調(diào)試、生成程序的核心轉(zhuǎn)儲文件等。

2. valgrind

valgrind是一款常用的內(nèi)存調(diào)試工具,可以檢測內(nèi)存泄露、越界訪問等問題。它可以運行在ARM架構(gòu)的Linux系統(tǒng)上,但需要安裝valgrind for ARM。

使用valgrind調(diào)試程序的流程大致如下:

1)安裝valgrind for ARM:

$ sudo apt-get install valgrind-arm-linux

2)編譯程序時不用加-g參數(shù):

$ gcc -o program program.c

3)啟動valgrind:

$ valgrind –tool=memcheck –leak-check=yes ./program

4)查看內(nèi)存信息:

==12345== Memcheck, a memory error detector

==12345== Copyright (C) 2023-2023, and GNU GPL’d, by Julian Seward et al.

==12345== Using Valgrind-3.13.0.SVN and LibVEX; rerun with -h for copyright info

==12345== Command: ./program

==12345==

Hello, world!

==12345==

==12345== HEAP SUMMARY:

==12345== in use at exit: 0 bytes in 0 blocks

==12345== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated

==12345==

==12345== All heap blocks were freed — no leaks are possible

==12345==

==12345== For counts of detected and suppressed errors, rerun with: -v

==12345== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

5)退出valgrind:

==12345==

==12345== HEAP SUMMARY:

==12345== in use at exit: 0 bytes in 0 blocks

==12345== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated

==12345==

==12345== All heap blocks were freed — no leaks are possible

==12345==

==12345== For counts of detected and suppressed errors, rerun with: -v

==12345== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

$

valgrind還有其他的工具,例如helgrind可以檢測多線程程序中的數(shù)據(jù)競爭問題,不過與ARM架構(gòu)的Linux下的glibc6調(diào)試工具關(guān)聯(lián)不大,這里不再深入介紹。

3. strace

strace是一款系統(tǒng)調(diào)用跟蹤工具,可以輸出程序運行過程中調(diào)用的系統(tǒng)調(diào)用。通過使用strace,程序員可以了解程序的運行情況,找出程序中的問題。

使用strace調(diào)試程序的流程大致如下:

1)編譯程序:

$ gcc -o program program.c

2)啟動strace:

$ strace ./program

3)運行程序:

execve(“./program”, [“./program”], []) = 0

brk(NULL) = 0x55a08fb3c000

access(“/etc/ld.so.nohwcap”, F_OK) = -1 ENOENT (No such file or directory)

access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)

openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDON|O_CLOEXEC) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=78687, …}) = 0

mmap(NULL, 78687, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f36c9fb2023

close(3) = 0

……

4)查看程序調(diào)用的系統(tǒng)調(diào)用:

openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDON|O_CLOEXEC) = 3

close(3) = 0

access(“/etc/ld.so.nohwcap”, F_OK) = -1 ENOENT (No such file or directory)

access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)

openat(AT_FDCWD, “/lib/aarch64-linux-gnu/libc.so.6”, O_RDON|O_CLOEXEC) = 3

read(3, “\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0D.\2\0\0\0\0\0″…, 832) = 832

lseek(3, 4294971392, SEEK_SET) = -1 ESPIPE (Illegal seek)

……

5)退出strace:

$ exit_group(0) = ?

+++ exited with 0 +++

strace還可以輸出文件讀寫情況、網(wǎng)絡(luò)通信情況等,方便程序員進行問題定位。

本文介紹了一些常用的,包括gdb、valgrind和strace。這些工具提供了不同的調(diào)試方式,程序員可以根據(jù)需要選擇合適的工具。在程序開發(fā)過程中,遇到問題時,調(diào)試工具是很好的助手,使用調(diào)試工具可以提高程序員的調(diào)試效率,縮短問題定位的時間。

相關(guān)問題拓展閱讀:

  • PVE內(nèi)核在ARM64下安裝及編譯
  • arm嵌入式linux系統(tǒng)開發(fā)詳解怎么樣

PVE內(nèi)核在ARM64下安裝及編譯

以下命令在Linux root下進行

1.apt-getinstall gnupg2 wget –y

2.加入Proxmox 軟逗山早件包源

wget -qO –

| sudo apt-key add echo “deb

buster pve-no-subscription ” | sudotee /etc/apt/sources.list.d/buster-pvetest.list

3.apt-getupdate

4.安裝編譯環(huán)境

apt-get install build-essentialasciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzipzlib1g-dev libc6-dev subversion flex uglifyjs p7zip p7zip-full mtp libssl-devtexinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automakelibtool autopoint device-tree-compiler screen

apt-get install python3-dev  python3-sphinx lintian bc bison libdw-devlibiberty-dev libnuma-dev libslang2-dev lz4 rsync  libpve-common-perl dh-make docbook5-xml

若山雀是出現(xiàn)libncurses5-dev安裝依賴錯誤,用aptitude安裝即可解決

5. Git pve內(nèi)核源碼

git

6. 修改Makefile文件

23行內(nèi)容 KERNEL_ARCH=x86和之后 修改成如下圖所示:

7.  在pve-kernel/debian/rules.d文件目錄下生成文件arm64.mk,內(nèi)容如下

KERNEL_BUILD_ARCH= arm64

KERNEL_HEADER_ARCH   = $(KERNEL_BUILD_ARCH)

KERNEL_BUILD_IMAGE     = Image

KERNEL_IMAGE_PATH =arch/$(KERNEL_BUILD_ARCH)/boot/${KERNEL_BUILD_IMAGE}

KERNEL_INSTALL_FILE= vmlinuz

8.  修改pve-kernel/debian/rules文件,將rysnc中的tools修改成source,修改結(jié)果如下圖所示

9.  Make all

10.最終編譯成功后會生唯橡成四個文件包,使用dpkg -i命令安裝四個deb包,即可完成pve內(nèi)核的安裝。

linux-tools-{KERNEL_VER}_arm64.deb

linux-tools-5.0-dbgsym_{KERNEL_VER}_arm64.deb

pve-headers-{KERNEL_VER}_arm64.deb

pve-kernel-{KERNEL_VER}_arm64.deb

arm嵌入式linux系統(tǒng)開發(fā)詳解怎么樣

嵌入式系統(tǒng)是目前更流行的計算機應(yīng)用技碰橡術(shù)之一。《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》由淺入深地講解基于ARM體系結(jié)構(gòu)的嵌入式

Linux系統(tǒng)開發(fā),內(nèi)容包括嵌入式系統(tǒng)的基本概念、應(yīng)用領(lǐng)域等基礎(chǔ)知識;ARM處理器的體系結(jié)構(gòu)和功能特點;Linux系統(tǒng)內(nèi)核結(jié)構(gòu)和移植方法、

Bootloader功能和移笑并旁植;Linux應(yīng)用程序開發(fā),包括如何操作文件、管理內(nèi)存、訪問串口、多線程和多進程技術(shù),并且剖析了應(yīng)用程序的結(jié)構(gòu)和工作

流程;Linux系統(tǒng)設(shè)備驅(qū)動程序開發(fā),包括如何編寫內(nèi)核模塊、驅(qū)動程序分類和功能特點,并且給出了網(wǎng)絡(luò)設(shè)備驅(qū)動、Flash設(shè)備驅(qū)動和USB設(shè)備驅(qū)動的

實例分析。

《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》附帶1張DVD光盤,內(nèi)容為專門為《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》錄制的9小時視頻、《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》涉及的源代碼、Ubuntu安裝光盤的鏡像文件和另外贈送的35小時Linux專題學(xué)習(xí)視頻。

《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》適合廣大從事嵌入式Linux系統(tǒng)開發(fā)人員、對嵌入式Linux系統(tǒng)開發(fā)有興趣的計算蔽清機愛好者,以及大中專院校學(xué)生閱讀。

關(guān)于arm linux libc6 dbg的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


文章題目:ARM架構(gòu)Linux下的glibc6調(diào)試工具(armlinuxlibc6dbg)
標(biāo)題來源:http://www.5511xx.com/article/coceijh.html