星期六, 5月 19, 2007

建構 Insight 6.1

V1.2

copyright@2006

email: mesmerli@hotmail.com

什麼是 Insight?

本文主要介紹如何建構搭配 ARM 處理器的應用程式除錯工具。

Insight 是一個可以搭配 gdbserver 的圖形化除錯工具。

建構 Insight 6.1

解壓縮 insight 6.1 所有原始碼到一個檔案夾,

接下來,在該檔案夾下建立以下檔案夾

  1. insight-arm-linux-6.1
  2. gdbserver-arm-6.1.

完畢後,檔案夾結構應如下所示:

  1. ./gdbserver-arm-6.1 (empty)
  2. ./insight-6.1 (the source tree)
  3. ./insight-arm-linux-6.1 (empty)
進入 insight-arm-linux-6.1 檔案夾下使用下面的命令建構 Insight 主程式

# cd /usr/src/creator/nfs/Day1/insight-6.1/insight-arm-linux-6.1
# ../insight-6.1/configure --host=i686-pc-linux --target=arm-linux --prefix=/usr/local/insight-arm-6.1 --enable-sim

# make
# make install


接下來,進入 gdbserver-arm-6.1 檔案夾建構 gdbserver

ARM 版本須進行以下修改:

修改 linux-arm-low.c

1. vi ../insight-6.1/gdb/gdbserver/linux-arm-low.c

2. remark #include <sys/reg.h> in line 26

# ../insight-6.1/gdb/gdbserver/configure --target=arm-linux

Note:

修改 Make File

1. vi Makefile

2. change gcc to arm-linux-gcc in line 52

# make

使用Insight 與 gdbserver 除錯

  1. 在 gdbserver-arm-6.1 目錄夾找到 "gdbserver",並把它放到您的實驗板檔案系統中。
  2. 重新編譯您的應用程式,並且使用 -ggdb 選項重新編譯。
  3. 啟動您的實驗板,並使用以下的命令在實驗板執行應用程式
    # gbdserver <your PC TCP/IP address>:<2345 or your port> <your program> <your arguments>
  4. 在 Host 端執行 Insight。 /usr/local/insight-arm-6.1/bin/arm-linux-insight
  5. 在 Insight 圖形介面,依下面說明操作

在 "File" -> "Target settings" 選單設定以下選項

Connection:
Target: GDBserver/TCP
Hostname:
Port: 2345 (or any free port you want)

展開 "More options",
Run Options:
[x] Attach to Target
[ ] Download program

Run Method:
< > Run program
<x>Continue from last stop

在 global options 中,確認 "Set breakpoint at main" 被選取。

  1. 在 Insight選單中選擇"run"->"Run",並選擇 ARM program binary。
  2. gdbserver 此時應已與 Insight 連線,所以此時可使用 Insight 除錯實驗板上的應用程式。

後記

  1. gdbserver只適合除錯應用程式,無法除錯 Linux 核心或核心模組 (Kernel Module)。
  2. 如不想使用圖形化介面,亦可使用 GDB 文字模式除錯。

0 意見: