Hey again,
Can you give me an example about "you can set the breakpoint remotely from Qemu"?
the approach you used (target remote, break <location>) was the correct one.
The application will halt when the instrument "enter_kdebug()" hit, so that we
can use jdb to debug. It is helpful but what I really want is a source code level debugging tool(e.g., I can set a breakpoint using a function name which in JDB I need input the memory address). It seems that gdb donot support the remotely source code level debug on fiasco, bootstrap or others applications accroding to your explanation. If so, what should I do if I can't use gdb.
GDB works fine. Unless you want to debug multiple applications concurrently at which point GDB's lack of multiple address space support hits you.
Is there any other tools to instead? And how can I debug the process from the very beginning of the system which it goes before JDB runs?
That's harder at the moment. You could manually place the enter_kdebug() call in an earlier function (e.g., in uClibC's main function). But then you will get this behavior from all applications that were compiled with this libC and managing this can be a mess.
Bjoern