From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1FfHA6-0003XL-PU for mharc-grub-devel@gnu.org; Sun, 14 May 2006 10:01:34 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FfHA4-0003VD-OD for grub-devel@gnu.org; Sun, 14 May 2006 10:01:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FfHA4-0003V1-5s for grub-devel@gnu.org; Sun, 14 May 2006 10:01:32 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FfHA4-0003Uy-14 for grub-devel@gnu.org; Sun, 14 May 2006 10:01:32 -0400 Received: from [147.175.55.175] (helo=meta.morph.sk) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FfHCG-0004vh-4B for grub-devel@gnu.org; Sun, 14 May 2006 10:03:48 -0400 Received: by meta.morph.sk (Postfix, from userid 1018) id B4FA666A; Sun, 14 May 2006 16:01:24 +0200 (CEST) Date: Sun, 14 May 2006 16:01:24 +0200 From: Lubomir Kundrak To: The development of GRUB 2 Message-ID: <20060514140124.GA9983@meta.morph.sk> Mail-Followup-To: Lubomir Kundrak , The development of GRUB 2 References: <20060512132007.GA88582@meta.morph.sk> <44662951.2050600@xacks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <44662951.2050600@xacks.com> User-Agent: Mutt/1.4.2.1i Subject: Re: Debugging GRUB2 with GDB and QEMU X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 May 2006 14:01:33 -0000 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: lkundrak@skosi.org > Delivered-To: lkundrak@morph.sk > Date: Sat, 13 May 2006 14:45:37 -0400 > From: devShadow > User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) > X-Accept-Language: en-us, en > To: The development of GRUB 2 > In-Reply-To: <20060512132007.GA88582@meta.morph.sk> > X-Virus-Scanned: Symantec AntiVirus Scan Engine > Subject: Re: Debugging GRUB2 with GDB and QEMU > X-BeenThere: grub-devel@gnu.org > X-Mailman-Version: 2.1.5 > Precedence: list > Reply-To: The development of GRUB 2 > List-Id: The development of GRUB 2 > List-Unsubscribe: , > > List-Archive: > List-Post: > List-Help: > List-Subscribe: , > > Errors-To: grub-devel-bounces+lkundrak=skosi.org@gnu.org > > 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 > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel -- o Lubomir Kundrak *O* , http://skosi.org/~lkundrak/ (_) SKOSI -- Slovak OpenSource Initiative