mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-27 05:50:43 +00:00
* ldmisc.c (vfinfo <%C,%D,%G>): Always output bfd, section and offset.
This commit is contained in:
parent
344897cceb
commit
5cfb2bb208
@ -1,3 +1,7 @@
|
|||||||
|
2002-09-21 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ldmisc.c (vfinfo <%C,%D,%G>): Always output bfd, section and offset.
|
||||||
|
|
||||||
2002-09-17 Stan Cox <scox@redhat.com>
|
2002-09-17 Stan Cox <scox@redhat.com>
|
||||||
|
|
||||||
* emulparams/elf32bmipn32-defs.sh: New file.
|
* emulparams/elf32bmipn32-defs.sh: New file.
|
||||||
|
65
ld/ldmisc.c
65
ld/ldmisc.c
@ -236,9 +236,8 @@ vfinfo (fp, fmt, arg)
|
|||||||
case 'C':
|
case 'C':
|
||||||
case 'D':
|
case 'D':
|
||||||
case 'G':
|
case 'G':
|
||||||
/* Clever filename:linenumber with function name if possible,
|
/* Clever filename:linenumber with function name if possible.
|
||||||
or section name as a last resort. The arguments are a BFD,
|
The arguments are a BFD, a section, and an offset. */
|
||||||
a section, and an offset. */
|
|
||||||
{
|
{
|
||||||
static bfd *last_bfd;
|
static bfd *last_bfd;
|
||||||
static char *last_file = NULL;
|
static char *last_file = NULL;
|
||||||
@ -280,68 +279,54 @@ vfinfo (fp, fmt, arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, offset);
|
||||||
|
|
||||||
discard_last = true;
|
discard_last = true;
|
||||||
if (bfd_find_nearest_line (abfd, section, asymbols, offset,
|
if (bfd_find_nearest_line (abfd, section, asymbols, offset,
|
||||||
&filename, &functionname,
|
&filename, &functionname,
|
||||||
&linenumber))
|
&linenumber))
|
||||||
{
|
{
|
||||||
if (functionname != NULL && fmt[-1] == 'G')
|
boolean need_colon = true;
|
||||||
{
|
|
||||||
lfinfo (fp, "%B:", abfd);
|
|
||||||
if (filename != NULL
|
|
||||||
&& strcmp (filename, bfd_get_filename (abfd)) != 0)
|
|
||||||
fprintf (fp, "%s:", filename);
|
|
||||||
lfinfo (fp, "%T", functionname);
|
|
||||||
}
|
|
||||||
else if (functionname != NULL && fmt[-1] == 'C')
|
|
||||||
{
|
|
||||||
if (filename == (char *) NULL)
|
|
||||||
filename = abfd->filename;
|
|
||||||
|
|
||||||
|
if (functionname != NULL && fmt[-1] == 'C')
|
||||||
|
{
|
||||||
if (last_bfd == NULL
|
if (last_bfd == NULL
|
||||||
|| last_file == NULL
|
|| last_file == NULL
|
||||||
|| last_function == NULL
|
|| last_function == NULL
|
||||||
|| last_bfd != abfd
|
|| last_bfd != abfd
|
||||||
|| strcmp (last_file, filename) != 0
|
|| (filename != NULL
|
||||||
|
&& strcmp (last_file, filename) != 0)
|
||||||
|| strcmp (last_function, functionname) != 0)
|
|| strcmp (last_function, functionname) != 0)
|
||||||
{
|
{
|
||||||
/* We use abfd->filename in this initial line,
|
lfinfo (fp, _(": In function `%T':\n"),
|
||||||
in case filename is a .h file or something
|
functionname);
|
||||||
similarly unhelpful. */
|
need_colon = false;
|
||||||
lfinfo (fp, _("%B: In function `%T':\n"),
|
|
||||||
abfd, functionname);
|
|
||||||
|
|
||||||
last_bfd = abfd;
|
last_bfd = abfd;
|
||||||
if (last_file != NULL)
|
if (last_file != NULL)
|
||||||
free (last_file);
|
free (last_file);
|
||||||
last_file = xstrdup (filename);
|
last_file = NULL;
|
||||||
|
if (filename)
|
||||||
|
last_file = xstrdup (filename);
|
||||||
if (last_function != NULL)
|
if (last_function != NULL)
|
||||||
free (last_function);
|
free (last_function);
|
||||||
last_function = xstrdup (functionname);
|
last_function = xstrdup (functionname);
|
||||||
}
|
}
|
||||||
discard_last = false;
|
discard_last = false;
|
||||||
if (linenumber != 0)
|
|
||||||
fprintf (fp, "%s:%u", filename, linenumber);
|
|
||||||
else
|
|
||||||
lfinfo (fp, "%s(%s+0x%v)", filename, section->name,
|
|
||||||
offset);
|
|
||||||
}
|
}
|
||||||
else if (filename == NULL
|
|
||||||
|| strcmp (filename, abfd->filename) == 0)
|
if (filename != NULL)
|
||||||
{
|
{
|
||||||
lfinfo (fp, "%B(%s+0x%v)", abfd, section->name,
|
if (need_colon)
|
||||||
offset);
|
putc (':', fp);
|
||||||
if (linenumber != 0)
|
fputs (filename, fp);
|
||||||
lfinfo (fp, ":%u", linenumber);
|
|
||||||
}
|
}
|
||||||
else if (linenumber != 0)
|
|
||||||
lfinfo (fp, "%B:%s:%u", abfd, filename, linenumber);
|
if (functionname != NULL && fmt[-1] == 'G')
|
||||||
else
|
lfinfo (fp, ":%T", functionname);
|
||||||
lfinfo (fp, "%B(%s+0x%v):%s", abfd, section->name,
|
else if (filename != NULL && linenumber != 0)
|
||||||
offset, filename);
|
fprintf (fp, ":%u", linenumber);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, offset);
|
|
||||||
|
|
||||||
if (discard_last)
|
if (discard_last)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user