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: [EMAIL PROTECTED] > Delivered-To: [EMAIL PROTECTED] > Date: Sat, 13 May 2006 14:45:37 -0400 > From: devShadow <[EMAIL PROTECTED]> > User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) > X-Accept-Language: en-us, en > To: The development of GRUB 2 <grub-devel@gnu.org> > In-Reply-To: <[EMAIL PROTECTED]> > 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 <grub-devel@gnu.org> > List-Id: The development of GRUB 2 <grub-devel.gnu.org> > List-Unsubscribe: <http://lists.gnu.org/mailman/listinfo/grub-devel>, > <mailto:[EMAIL PROTECTED]> > List-Archive: <http://lists.gnu.org/pipermail/grub-devel> > List-Post: <mailto:grub-devel@gnu.org> > List-Help: <mailto:[EMAIL PROTECTED]> > List-Subscribe: <http://lists.gnu.org/mailman/listinfo/grub-devel>, > <mailto:[EMAIL PROTECTED]> > Errors-To: [EMAIL PROTECTED] > > 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* <[EMAIL PROTECTED]>, http://skosi.org/~lkundrak/ (_) SKOSI -- Slovak OpenSource Initiative _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel