[問題] 遠端GDB問題

看板LinuxDev作者 (東逼)時間11年前 (2013/11/12 18:39), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
大家好~是這樣子 最近正在嘗試使用GDB來除錯 我寫了一個簡單的範例想要來測試看看 在機器上使用沒啥問題 但利用遠端GDB就會跑不出來 不是很懂原因~所以po上來請教大家 test.c: #include <stdio.h> #include <stdlib.h> #include <string.h> void func(char* str) { int aa = 10; char arr[100]; printf("------ aa = %d\n", aa); memcpy(arr, str, strlen(str)); } int main(void) { char* str = "HelloWorld"; func(str); return 0; } 利用指令 arm-linux-gcc -g test.c -o test編出執行檔後 在機器上執行GDB: gdb test (gdb) run ... ← 接下來使用GDB的指令都沒啥問題 不過接下來想要利用遠端GDB時卻怪怪的 假設主機IP是192.168.0.101,而機器上IP是192.168.0.102 機器上: gdbserver 192.168.0.101:12345 test 這時會出現訊息: Listening on port 12345 此時在本機上輸入 arm-linux-gdb test (gdb) target remote 192.168.0.102:12345 這時候在機器上會出現 Remote debugging from host 192.168.0.101 此時若我輸入run指令會出現 The "remote" target does not support "run". Try "help target" or "continue". 我知道遠端GDB沒這個指令~於是照他說的輸入continue 結果就出現這個訊息 Program received signal SIGSEGV, Segmentation fault. 0x2aba23c0 in _dl_fini () 不管輸入continue、next都會出現,想要print變數也不能 即使有設定中斷點也是 (但list指令是正常的 @@) 但我在機器上執行GDB的時候 只要有先執行run指令 其他的指令,像是list print next continue都是正常的 補充一下我的環境設定 本機: VMware 9 + Ubuntu tool chain: arm-linux 機器GDB版本: 6.6 arm-linux-gdb版本: 7.2 不知道是不是因為兩端的GDB版本不同的關係@@ 在此就先謝謝大家的幫忙囉~ -- ▍ ▍ ╯╰ ╯╰ ◢◣ ◢◣ 我最愛的 柏柏龍~ 柏柏龍~ ◢██◣ ╮╭ ▎▎╮╭ ▎▎ 柏柏龍~ 柏柏龍~ ⊙ ⊙ ⊙ ⊙ 人人心中都有柏柏龍~ ≡ ▼ ≡ ▲▲ ● ● ≡ ▼ ≡ ■ ■ ■ ■ 憤怒就永遠不會消失~ ⊙⊙ ≡皿 ≡ 炸是最美的擁有~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.179.30

11/12 23:54, , 1F
host端的gdb要另外build, config target=arm
11/12 23:54, 1F

11/13 00:26, , 2F
樓上認為原PO的 arm-linux-gdb 是什麼東西?
11/13 00:26, 2F

11/13 10:29, , 3F
後來我自己試了一下~好像真的是版本問題@@ 我把本機的和
11/13 10:29, 3F

11/13 10:30, , 4F
機器的都換成7.2的就好了@@ 給大家參考一下囉
11/13 10:30, 4F

11/14 00:03, , 5F
喔 沒看到那行 拍謝原po, 但甘yvb屁事 自以為了不起
11/14 00:03, 5F
文章代碼(AID): #1IWWLAJz (LinuxDev)
文章代碼(AID): #1IWWLAJz (LinuxDev)