[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/

I noticed, that when any segment is 0 bytes long and starts
at 0x0, gdb desn't resolve symbols correctly.
I have motified the to reflect this.
Please check an updated version.


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 <>
> List-Unsubscribe: <>,
>       <mailto:address@hidden>
> List-Archive: <>
> List-Post: <mailto:address@hidden>
> List-Help: <mailto:address@hidden>
> List-Subscribe: <>,
>       <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]
> >
> >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,, 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

  o     Lubomir Kundrak
 *O*    <address@hidden>,
 (_)    SKOSI -- Slovak OpenSource Initiative

reply via email to

[Prev in Thread] Current Thread [Next in Thread]