[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Debugging GRUB2 with GDB and QEMU
From: |
Lubomir Kundrak |
Subject: |
Re: Debugging GRUB2 with GDB and QEMU |
Date: |
Sun, 14 May 2006 16:01:24 +0200 |
User-agent: |
Mutt/1.4.2.1i |
I noticed, that when any segment is 0 bytes long and starts
at 0x0, gdb desn't resolve symbols correctly.
I have motified the gmodule.pl to reflect this.
Please check an updated version.
regards,
lubo
On Sat, May 13, 2006 at 02:45:37PM -0400, devShadow wrote:
> X-Original-To: address@hidden
> Delivered-To: address@hidden
> Date: Sat, 13 May 2006 14:45:37 -0400
> From: devShadow <address@hidden>
> User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
> X-Accept-Language: en-us, en
> To: The development of GRUB 2 <address@hidden>
> In-Reply-To: <address@hidden>
> X-Virus-Scanned: Symantec AntiVirus Scan Engine
> Subject: Re: Debugging GRUB2 with GDB and QEMU
> X-BeenThere: address@hidden
> X-Mailman-Version: 2.1.5
> Precedence: list
> Reply-To: The development of GRUB 2 <address@hidden>
> List-Id: The development of GRUB 2 <grub-devel.gnu.org>
> List-Unsubscribe: <http://lists.gnu.org/mailman/listinfo/grub-devel>,
> <mailto:address@hidden>
> List-Archive: <http://lists.gnu.org/pipermail/grub-devel>
> List-Post: <mailto:address@hidden>
> List-Help: <mailto:address@hidden>
> List-Subscribe: <http://lists.gnu.org/mailman/listinfo/grub-devel>,
> <mailto:address@hidden>
> Errors-To: address@hidden
>
> Hi, thanks for the help with debugging modules. I have a module that I
> created and still need a little assistance in getting gdb to break in my
> module's grub_cmd_*. I am able to connect to QEMU with gdb and when I
> load the module, gdb loads the symbol table for my module.
>
> But, when I set a breakpoint at the address of the first operation in my
> module, gdb doesn't break when I execute the command in GRUB. If it has
> something to do with the aliases you mention at the bottom of your
> message, could you elaborate a little more or direct me in the right
> direction?
>
> Thanks
>
> David Johnson
>
> Lubomir Kundrak wrote:
> >I wrote some GDB macros that might be helpful for people
> >that want to debug GRUB 2 modules with QEMU. [1]
> >
> >[1] http://NetBSD.sk/~lkundrak/misc/grub2-gdb/
> >
> >The file genmk.rb.diff is a patch to makefile-generator
> >script, that makes the build system leave output files with
> >debugging information. Of course, one has have ruby interpreter
> >to regenerate the makefiles and compile GRUB with -g
> >afterwards.
> >
> >Second file is .gdbinit, the GDB initialization file. It is
> >commented, so there is no need to describe it here. It basically
> >passes the information extracted from list headed by grub_dl_head to
> >the perl script, gmodule.pl, and loads its output. It also
> >sets a breakpoint whose command list contains macro for loading
> >proper symbol file each time a module is loaded. (I know the work
> >could be done without the help of a Perl script, but it would
> >be far more complicated, I guess)
> >
> >Another note worth mentioning is that you'll probably want
> >to add aliases for some functions, so that all gdb facilities
> >will work correctly. You will at least want to define the symbol
> >'main' for backtraces to stop at the right place. Some facilities
> >also want the function 'malloc' to be defined. So, you'll
> >probably have to add something like
> >
> >.globl main
> >main = codestart
> >
> >to assembly language sources or
> >
> >malloc() __attribute__ ((alias("grub_malloc")));
> >
> >to C files.
> >
> >I hope this will be useful to at least some of you. Best regards!
> >Lubo.
> >
>
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel
--
o Lubomir Kundrak
*O* <address@hidden>, http://skosi.org/~lkundrak/
(_) SKOSI -- Slovak OpenSource Initiative