怎么用skyeye+gdb来调试u-boot呢?
我用的skyeye是1.2.3版,u-boot是1.1.6,参照这个论坛里那篇在s3c2410上运行u-boot的帖子,把u-boot运行起来了,这没有问题。但是我想调试u-boot的启动过程:
在被调试一侧执行:
# ./skyeye -c skyeye.conf -e u-boot -d
big_endian is false.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name s3c2410x, mach_init addr 0x806acc0
log_info: log is off.
log_info:log file is ./sk1.log, fd is 0x85d9298
log_info: log start clock 0
log_info: log end clock 200000
uart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use arm920t mmu ops
Loaded RAM hello.bin
Loaded RAM u-boot.bin
exec file "u-boot"'s format is elf32-little.
load section .text: addr = 0x33f80000size = 0x0001290c.
load section .glue_7: addr = 0x33f9290csize = 0x00000000.
load section .glue_7t: addr = 0x33f9290csize = 0x00000000.
load section .rodata: addr = 0x33f9290csize = 0x000006fc.
load section .rodata.str1.4: addr = 0x33f93008size = 0x00003c6b.
load section .data: addr = 0x33f96c74size = 0x00000934.
load section .u_boot_cmd: addr = 0x33f975a8size = 0x00000438.
not load section .bss: addr = 0x33f979e0size = 0x0000472c .
not load section .debug_line: addr = 0x00000000size = 0x000091cb .
not load section .debug_info: addr = 0x00000000size = 0x0004f2b0 .
not load section .debug_abbrev: addr = 0x00000000size = 0x00007b4e .
not load section .debug_aranges: addr = 0x00000000size = 0x00000720 .
not load section .debug_frame: addr = 0x00000000size = 0x00002b88 .
not load section .debug_pubnames: addr = 0x00000000size = 0x00001d37 .
not load section .debug_str: addr = 0x00000000size = 0x0000472a .
not load section .comment: addr = 0x00000000size = 0x000003cc .
not load section .debug_ranges: addr = 0x00000000size = 0x00000288 .
start addr is set to 0x33f00000 by exec file.
debugmode= 1, filename = skyeye.conf, server TCP port is 12345
在调试这一侧执行:
# gdb u-boot
GNU gdb Red Hat Linux (6.6-8.fc7rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) list
1 /*
2 *armboot - Startup Code for ARM920 CPU-core
3 *
4 *Copyright (c) 2001Marius Gr�ger <[email protected]>
5 *Copyright (c) 2002Alex Z�pke <[email protected]>
6 *Copyright (c) 2002Gary Jennejohn <[email protected]>
7 *
8 * See file CREDITS for list of people who contributed to this
9 * project.
10 *
(gdb) target remote localhost:12345
Remote debugging using localhost:12345
0x00000000 in ?? ()
(gdb) stepi
Can't send signals to this remote system.SIGHUP not sent.
Program received signal SIGHUP, Hangup.
0x00000000 in ?? ()
到这里之后除了打命令continue之外,好像其它命令都不生效,
我想能像调试一般应用程序一样能单步执行,并且能看到源代码,如果是汇编的话,希望能看到指令
我该怎么做呢? Firstly. you should use arm-linux-gdb to debug your u-boot of ARM
Secondly, you should run the command "target remote :12345" on gdb prompt after gdb launch. Reference from the following instruction:
http://skyeye.sourceforge.net/wiki/um5 终于搞定了,重新build 了一个6.3版的arm-linux-gdb
用display /i $pc显示汇编指令
页:
[1]