* xcoffread.c (read_xcoff_symtab): If several program csects in one

source file, give them all the name of the source file, rather than
	the 2nd and subsequent ones having NULL names.
This commit is contained in:
Jim Kingdon 1993-05-27 22:06:12 +00:00
parent b9653d8165
commit 860b4da38b
2 changed files with 19 additions and 9 deletions

View File

@ -1,3 +1,9 @@
Thu May 27 16:56:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* xcoffread.c (read_xcoff_symtab): If several program csects in one
source file, give them all the name of the source file, rather than
the 2nd and subsequent ones having NULL names.
Thu May 27 06:16:56 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* printcmd.c (print_address_symbolic): Append source filename and

View File

@ -1163,14 +1163,16 @@ read_xcoff_symtab (objfile, nsyms)
case XMC_PR : /* a `.text' csect. */
{
/* A program csect is seen.
We have to allocate one symbol table for each program csect. Normally
gdb prefers one symtab for each compilation unit (CU). In case of AIX, one
CU might include more than one prog csect, and they don't have to be
adjacent in terms of the space they occupy in memory. Thus, one single
CU might get fragmented in the memory and gdb's file start and end address
approach does not work! */
/* A program csect is seen. We have to allocate one
symbol table for each program csect. Normally gdb
prefers one symtab for each source file. In case
of AIX, one source file might include more than one
[PR] csect, and they don't have to be adjacent in
terms of the space they occupy in memory. Thus, one
single source file might get fragmented in the
memory and gdb's file start and end address
approach does not work! GCC (and I think xlc) seem
to put all the code in the unnamed program csect. */
if (last_csect_name) {
@ -1191,7 +1193,9 @@ read_xcoff_symtab (objfile, nsyms)
textsec->target_index);
end_stabs ();
start_stabs ();
start_symtab ((char *)NULL, (char *)NULL, (CORE_ADDR)0);
/* Give all csects for this source file the same
name. */
start_symtab (filestring, (char *)NULL, (CORE_ADDR)0);
}
/* If this is the very first csect seen, basically `__start'. */