* tuiStack.c (tui_get_function_from_frame): Rename from
_getFuncNameFromFrame; use print_address_symbolic to get symbolic name of address. (tuiUpdateLocatorInfoFromFrame): Update.
This commit is contained in:
parent
bc77de56b6
commit
5564c76952
@ -1,3 +1,10 @@
|
||||
2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
|
||||
|
||||
* tuiStack.c (tui_get_function_from_frame): Rename from
|
||||
_getFuncNameFromFrame; use print_address_symbolic to get symbolic
|
||||
name of address.
|
||||
(tuiUpdateLocatorInfoFromFrame): Update.
|
||||
|
||||
2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
|
||||
|
||||
* tuiRegs.c (tuiDisplayRegistersFrom): Remove unused locals.
|
||||
|
@ -52,19 +52,47 @@
|
||||
#include "tuiGeneralWin.h"
|
||||
#include "tuiSource.h"
|
||||
#include "tuiSourceWin.h"
|
||||
#include "tui-file.h"
|
||||
|
||||
|
||||
/*****************************************
|
||||
** STATIC LOCAL FUNCTIONS FORWARD DECLS **
|
||||
******************************************/
|
||||
/* Get a printable name for the function at the address.
|
||||
The symbol name is demangled if demangling is turned on.
|
||||
Returns a pointer to a static area holding the result. */
|
||||
static char* tui_get_function_from_frame (struct frame_info *fi);
|
||||
|
||||
static char *_getFuncNameFromFrame (struct frame_info *);
|
||||
static void tui_update_command (char *, int);
|
||||
|
||||
|
||||
/*****************************************
|
||||
** PUBLIC FUNCTION **
|
||||
******************************************/
|
||||
/* Get a printable name for the function at the address.
|
||||
The symbol name is demangled if demangling is turned on.
|
||||
Returns a pointer to a static area holding the result. */
|
||||
static char*
|
||||
tui_get_function_from_frame (struct frame_info *fi)
|
||||
{
|
||||
static char name[256];
|
||||
struct ui_file *stream = tui_sfileopen (256);
|
||||
char *p;
|
||||
|
||||
print_address_symbolic (fi->pc, stream, demangle, "");
|
||||
p = tui_file_get_strbuf (stream);
|
||||
|
||||
/* Use simple heuristics to isolate the function name. The symbol can
|
||||
be demangled and we can have function parameters. Remove them because
|
||||
the status line is too short to display them. */
|
||||
if (*p == '<')
|
||||
p++;
|
||||
strncpy (name, p, sizeof (name));
|
||||
p = strchr (name, '(');
|
||||
if (!p)
|
||||
p = strchr (name, '>');
|
||||
if (p)
|
||||
*p = 0;
|
||||
p = strchr (name, '+');
|
||||
if (p)
|
||||
*p = 0;
|
||||
ui_file_delete (stream);
|
||||
return name;
|
||||
}
|
||||
|
||||
/*
|
||||
** tuiClearLocatorDisplay()
|
||||
@ -230,13 +258,13 @@ tuiUpdateLocatorInfoFromFrame (struct frame_info *frameInfo,
|
||||
!frame_in_dummy (frameInfo->next)));
|
||||
if (symtabAndLine.symtab && symtabAndLine.symtab->filename)
|
||||
tuiSetLocatorInfo (symtabAndLine.symtab->filename,
|
||||
_getFuncNameFromFrame (frameInfo),
|
||||
tui_get_function_from_frame (frameInfo),
|
||||
symtabAndLine.line,
|
||||
frameInfo->pc,
|
||||
element);
|
||||
else
|
||||
tuiSetLocatorInfo ((char *) NULL,
|
||||
_getFuncNameFromFrame (frameInfo),
|
||||
tui_get_function_from_frame (frameInfo),
|
||||
0,
|
||||
frameInfo->pc,
|
||||
element);
|
||||
@ -395,27 +423,6 @@ _initialize_tuiStack (void)
|
||||
"execution point.\n");
|
||||
}
|
||||
|
||||
|
||||
/*****************************************
|
||||
** STATIC LOCAL FUNCTIONS **
|
||||
******************************************/
|
||||
|
||||
/*
|
||||
** _getFuncNameFromFrame().
|
||||
*/
|
||||
static char *
|
||||
_getFuncNameFromFrame (struct frame_info *frameInfo)
|
||||
{
|
||||
char *funcName = (char *) NULL;
|
||||
|
||||
find_pc_partial_function (frameInfo->pc,
|
||||
&funcName,
|
||||
(CORE_ADDR *) NULL,
|
||||
(CORE_ADDR *) NULL);
|
||||
return funcName;
|
||||
} /* _getFuncNameFromFrame */
|
||||
|
||||
|
||||
/* Command to update the display with the current execution point. */
|
||||
static void
|
||||
tui_update_command (char *arg, int from_tty)
|
||||
|
Loading…
Reference in New Issue
Block a user