这里都是GDB的老大,请教命令n为何会这样
# skyeye linux-2.6.x/linuxGNU gdb 5.3
Copyright 2002 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.
***************************************************************
************ SkyEye is Simulator based on GDB *************
***************************************************************
This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf"...
(SkyEye) target sim
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
mach info: name at91, mach_init addr 0x813dad4
SKYEYE: use arm7100 mmu ops
Loaded ROM ./romfs.img
Connected to the simulator.
(SkyEye) load
Loading section .init, size 0xb000 vma 0x1000000
Loading section .text, size 0xa0b98 vma 0x100b000
Loading section __ex_table, size 0x5b8 vma 0x10abba0
Loading section .data, size 0x8ef8 vma 0x10ae000
Start address 0x1000000
Transfer rate: 5931584 bits in <1 sec.
(SkyEye) break setup_arch
Breakpoint 1 at 0x1003e00: file arch/armnommu/kernel/setup.c, line 662.
(SkyEye) run
Starting program: /root/uclinux/uClinux-dist/linux-2.6.x/linux
Breakpoint 1, setup_arch (cmdline_p=0x10c2d98) at arch/armnommu/kernel/setup.c:662
662 {
(SkyEye) bt
#0setup_arch (cmdline_p=0x10c2d98) at arch/armnommu/kernel/setup.c:662
#10x0100049c in start_kernel () at init/main.c:414
(SkyEye) si
665 char *from = default_command_line;
(SkyEye) si
667 setup_processor();
(SkyEye) si
setup_processor () at arch/armnommu/kernel/setup.c:262
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
setup_processor () at arch/armnommu/kernel/setup.c:263
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
262 for (list = &__proc_info_begin; list < &__proc_info_end ; list++)
(SkyEye) n
263 if ((processor_id & list->cpu_mask) == list->cpu_val)
(SkyEye) n
270 if (list >= &__proc_info_end) {
(SkyEye) n
276 cpu_name = list->cpu_name;
(SkyEye) n
285 printk("CPU: %s [%08x] revision %d (ARMv%s)\n",
(SkyEye) n
276 cpu_name = list->cpu_name;
(SkyEye) n
285 printk("CPU: %s [%08x] revision %d (ARMv%s)\n",
(SkyEye) n <<<<<<<<<<<<<这一步直接执行完程序是否有问题?我不道跟gdb还是skyeye有关>>>>>>>>>>>>>
Linux version 2.6.5-hsc1 (root@mylabtop) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #1 Fri Jun 25 14:34:40 CST 2004
CPU: Atmel-AT91M40xxx revision 0 (ARMvundefined/unknown)
Machine: ATMEL EB01
On node 0 totalpages: 1024
DMA zone: 0 pages, LIFO batch:1
Normal zone: 1024 pages, LIFO batch:1
HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: root=/dev/ram0 initrd=0x01300000,900k keepinitrd
PID hash table entries: 32 (order 5: 256 bytes)
Memory: 4MB = 4MB total
Memory: 2348KB available (642K code, 92K data, 44K init)
Calibrating delay loop... 15.87 BogoMIPS
Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
POSIX conformance testing by UNIFIX
Linux NoNET1.0 for Linux 2.6
Atmel USART driver version 0.99
ttyS0 at 0xfffd0000 (irq = 2) is a builtin Atmel APB USART
ttyS1 at 0xfffcc000 (irq = 3) is a builtin Atmel APB USART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
RAMDISK: romfs filesystem found at block 0
RAMDISK: Loading 828 blocks into ram disk... done.
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 44K
Shell invoked to run file: /etc/rc
Command: hostname GDB-ARMulator
Command: /bin/expand /etc/ramfs.img /dev/ram1
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram1 /var
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: mkdir /var/empty
Command: cat /etc/motd
Welcome to
____ __
/__| ||_|
_ _| || | _ _____ ___
| | | | || || |_ \| | | |\ \/ /
| |_| | |__| || | | | | |_| |/ \
|___\____|_||_|_| |_|\____|\_/\_/
| |
|_|
GDB/ARMulator support by <[email protected]>
For further information check:
http://www.uclinux.org/
Execution Finished, Exiting
Sash command shell (version 1.1.1)
/>
Sash command shell (version 1.1.1)
/>
================
请看有 <<<标注的地方。我没有料到他不是在下一步停下,而是一直执行完了。
再请教一个无法设定断点的问题
(SkyEye) loadLoading section .init, size 0xb000 vma 0x1000000
Loading section .text, size 0xa0b98 vma 0x100b000
Loading section __ex_table, size 0x5b8 vma 0x10abba0
Loading section .data, size 0x8ef8 vma 0x10ae000
Start address 0x1000000
Transfer rate: 5931584 bits in <1 sec.
(SkyEye) b printk.c:printk
Note: breakpoints 11 and 12 also set at pc 0x101bbf0.
Breakpoint 13 at 0x101bbf0: file include/asm-arm/semaphore.h, line 55.
(SkyEye) b kernel/printk.c:printk
Note: breakpoints 11, 12 and 13 also set at pc 0x101bbf0.
Breakpoint 14 at 0x101bbf0: file include/asm-arm/semaphore.h, line 55.
(SkyEye)
=============
include/asm-arm/semaphore.h 是没有printk函数的,怎样才能设定到这个断点呢。
拜托,谢谢。 gdb对内核设置端点的支持还不后完整。需要凑合着用
页:
[1]