This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Here comes a new patch that fixes some issues. On Fri, 20 Sep 2002, Elena Zannoni wrote: > Does the reread_symbols() function still work? To see this you need > to run the inferior, then w/o quitting from gdb, modify the > executable/recompile and then issue a 'run' command. That would cause > the excutable and symbols to be reread. It walks the list of existing > objfiles and updates those that need it, but it doesn't call > symbol_file_add, so the crc check would not be done and the 2 files > could get out of sync. I fixed reread_symbols so that it won't ever use an incorrect debug file. It doesn't do a full search though, so if you change the file and keep using separate debug files you better leave the debug file in the same place. reread_symbols is pretty ugly in general though. For instance, what if the new file is relocated to a different place? It copies the old section_offsets, so that would break i think. > > diff --exclude '*~' --exclude '*.orig' --exclude '*.rej' --exclude '.#*' --exclude '*.o' --exclude CVS --exclude SCCS --exclude RCS --exclude '.*.flags' --exclude .cvsignore --exclude .depend -ur gdb-5.2.1/gdb/objfiles.h gdb-5.2.1.separate_debug_symbols/gdb/objfiles.h > > --- gdb-5.2.1/gdb/objfiles.h Sat Jun 29 00:05:47 2002 > > +++ gdb-5.2.1.separate_debug_symbols/gdb/objfiles.h Mon Sep 16 13:15:15 2002 > > @@ -409,6 +409,9 @@ > > ExportEntry *export_list; > > int export_list_size; > > > > + struct objfile *separate_debug_objfile; > > + struct objfile *separate_debug_objfile_backlink; > > + > > Could you add some comments, here and elsewhere? I added some. > > + debugfile = find_separate_debug_file (objfile, name); > > + if (debugfile) > > + { > > + printf_filtered ("loading separate debug info from '%s'\n", debugfile); > > + > > + objfile->separate_debug_objfile = symbol_file_add (debugfile, from_tty, (addrs != NULL) ? &orig_addrs : NULL, 0, flags); > > > Suggest using a simple conditional instead of a conditional expression. Done. > > + }; > > + unsigned char *end; > > + > > + crc = ~crc & 0xffffffff; > > + for (end = buf + len; buf < end; ++buf) > > + crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8); > > + return ~crc & 0xffffffff;; > > +} > > + > > I don't think this function belongs in this file. It is general enough > that it could be pushed into utils.c. Maybe even into some directory > outside of gdb? It could be useful to other tools as well. Put it in utils.c > For the below, in theory is Ok, but I would suggest looking at the > function openp() (in source.c) and how it is used in the solib_open() > function in solib.c. The tricky part is going to be assuring that the > filename is portable, i.e. working on windows/dos systems where the > directory separator is '\'. Look at IS_DIR_SEPARATOR, IS_ABSOLUTE_PATH > in the libiberty directory. I don't want to use openp() because i don't want the first availible file. I want the first one that matches the checksum. I can't see how i can use openp() to accomplish that. > Once this is done, this change would need to be documented in the gdb > manual, and a testcase added to the testsuite. I really tried to make a testcase. I promise. I was just completely crushed by expect/dejagnu and the testsuite setup. I have a small piece of code that can be used with objcopy --add-section to generate a .gnu_debuglink section to test this. I tried it manually, and it works well. If anyone is willing to do the testsuite work I promise to help as much as I can. -- -------------------------------------------------------------------------- Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an otherworldly drug-addicted firefighter trapped in a world he never made. She's a cynical Buddhist museum curator with the power to see death. They fight crime!
Attachment:
gdb_debug2.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |