/* TUI display registers in window.
- Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation,
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Contributed by Hewlett-Packard Company.
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* FIXME: cagney/2002-02-28: The GDB coding standard indicates that
- "defs.h" should be included first. Unfortunatly some systems
- (currently Debian GNU/Linux) include the <stdbool.h> via <curses.h>
- and they clash with "bfd.h"'s definiton of true/false. The correct
- fix is to remove true/false from "bfd.h", however, until that
- happens, hack around it by including "config.h" and <curses.h>
- first. */
-
-#include "config.h"
-#ifdef HAVE_NCURSES_H
-#include <ncurses.h>
-#else
-#ifdef HAVE_CURSES_H
-#include <curses.h>
-#endif
-#endif
-
#include "defs.h"
#include "tui.h"
#include "tuiData.h"
#include "gdbtypes.h"
#include "gdbcmd.h"
#include "frame.h"
+#include "regcache.h"
#include "inferior.h"
#include "target.h"
#include "tuiLayout.h"
#include "tuiGeneralWin.h"
#include "tui-file.h"
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
/*****************************************
** LOCAL DEFINITIONS **
******************************************/
******************************************/
static TuiStatus _tuiSetRegsContent
(int, int, struct frame_info *, TuiRegisterDisplayType, int);
-static char *_tuiRegisterName (int);
+static const char *_tuiRegisterName (int);
static TuiStatus _tuiGetRegisterRawValue (int, char *, struct frame_info *);
static void _tuiSetRegisterElement
(int, struct frame_info *, TuiDataElementPtr, int);
dataWin->detail.dataDisplayInfo.regsContentCount > 0)
{
register int i = startElementNo;
- int j, valueCharsWide, charsWide, itemWinWidth, curY, labelWidth;
+ int j, valueCharsWide, itemWinWidth, curY, labelWidth;
enum precision_type precision;
precision = (dataWin->detail.dataDisplayInfo.regsDisplayType
int
tuiDisplayRegistersFromLine (int lineNo, int forceDisplay)
{
- int elementNo;
-
if (dataWin->detail.dataDisplayInfo.regsContentCount > 0)
{
int line, elementNo;
else
{
int i, j;
- char rawBuf[MAX_REGISTER_RAW_SIZE];
+ char rawBuf[MAX_REGISTER_SIZE];
for (i = 0;
(i < dataWin->detail.dataDisplayInfo.regsContentCount); i++)
** _tuiRegisterName().
** Return the register name.
*/
-static char *
+static const char *
_tuiRegisterName (int regNum)
{
return REGISTER_NAME (regNum);
{
struct ui_file *stream;
struct ui_file *old_stdout;
- char *name;
+ const char *name;
struct cleanup *cleanups;
char *p;
int pos;
stream = tui_sfileopen (bufLen);
gdb_stdout = stream;
cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
- do_registers_info (regNum, 0);
+ gdbarch_print_registers_info (current_gdbarch, stream, deprecated_selected_frame,
+ regNum, 1);
/* Save formatted output in the buffer. */
p = tui_file_get_strbuf (stream);
{
return (_tuiSetRegsContent (0,
NUM_GENERAL_REGS - 1,
- selected_frame,
+ deprecated_selected_frame,
TUI_GENERAL_REGS,
refreshValuesOnly));
_tuiSetSpecialRegsContent (int refreshValuesOnly)
{
TuiStatus ret = TUI_FAILURE;
- int i, endRegNum;
+ int endRegNum;
endRegNum = FP0_REGNUM - 1;
-#if 0
- endRegNum = (-1);
- for (i = START_SPECIAL_REGS; (i < NUM_REGS && endRegNum < 0); i++)
- if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) == TYPE_CODE_FLT)
- endRegNum = i - 1;
-#endif
ret = _tuiSetRegsContent (START_SPECIAL_REGS,
endRegNum,
- selected_frame,
+ deprecated_selected_frame,
TUI_SPECIAL_REGS,
refreshValuesOnly);
_tuiSetGeneralAndSpecialRegsContent (int refreshValuesOnly)
{
TuiStatus ret = TUI_FAILURE;
- int i, endRegNum = (-1);
+ int endRegNum = (-1);
endRegNum = FP0_REGNUM - 1;
-#if 0
- endRegNum = (-1);
- for (i = 0; (i < NUM_REGS && endRegNum < 0); i++)
- if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) == TYPE_CODE_FLT)
- endRegNum = i - 1;
-#endif
ret = _tuiSetRegsContent (
- 0, endRegNum, selected_frame, TUI_SPECIAL_REGS, refreshValuesOnly);
+ 0, endRegNum, deprecated_selected_frame, TUI_SPECIAL_REGS, refreshValuesOnly);
return ret;
} /* _tuiSetGeneralAndSpecialRegsContent */
_tuiSetFloatRegsContent (TuiRegisterDisplayType dpyType, int refreshValuesOnly)
{
TuiStatus ret = TUI_FAILURE;
- int i, startRegNum;
+ int startRegNum;
startRegNum = FP0_REGNUM;
-#if 0
- startRegNum = (-1);
- for (i = NUM_REGS - 1; (i >= 0 && startRegNum < 0); i--)
- if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) != TYPE_CODE_FLT)
- startRegNum = i + 1;
-#endif
ret = _tuiSetRegsContent (startRegNum,
NUM_REGS - 1,
- selected_frame,
+ deprecated_selected_frame,
dpyType,
refreshValuesOnly);
if (dataElement->itemNo != UNDEFINED_ITEM &&
_tuiRegisterName (dataElement->itemNo) != (char *) NULL)
{
- char rawBuf[MAX_REGISTER_RAW_SIZE];
+ char rawBuf[MAX_REGISTER_SIZE];
int i;
if (_tuiGetRegisterRawValue (
if (target_has_registers)
{
- int opt;
-
- get_saved_register (regValue, &opt, (CORE_ADDR*) NULL, frame,
- regNum, (enum lval_type*) NULL);
+ frame_read_register (frame, regNum, regValue);
+ /* NOTE: cagney/2003-03-13: This is bogus. It is refering to
+ the register cache and not the frame which could have pulled
+ the register value off the stack. */
if (register_cached (regNum) >= 0)
ret = TUI_SUCCESS;
}
dataElement->highlight = FALSE;
}
if (dataElement->value == (Opaque) NULL)
- dataElement->value = (Opaque) xmalloc (MAX_REGISTER_RAW_SIZE);
+ dataElement->value = (Opaque) xmalloc (MAX_REGISTER_SIZE);
if (dataElement->value != (Opaque) NULL)
_tuiGetRegisterRawValue (regNum, dataElement->value, frame);
}