+2001-10-29 Martin M. Hunt <hunt@redhat.com>
+
+ * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Use
+ string_to_core_addr to read address so 64 bits will work.
+ (gdb_set_bp): Set error message with Tcl_SetObjResult()
+ so it will be displayed.
+ (gdb_set_bp_addr):Use string_to_core_addr to read address.
+ Set error message with Tcl_SetObjResult().
+
+ * generic/gdbtk-cmds.c (gdb_get_mem): :Use string_to_core_addr
+ to read address. Set error message with Tcl_SetObjResult() or
+ Tcl_WrongNumArgs.
+
2001-10-27 Tom Tromey <tromey@redhat.com>
* tclIndex: Updated.
session_save.
(gdbtk_tcl_preloop): Don't set executable name or try to find
main. Notice a new session if required.
-
+
2001-10-18 Martin M. Hunt <hunt@redhat.com>
-
+
* library/srcpref.itb (SrcPref::contructor): Move array
initialization to _init_var.
(SrcPref::_init_var): New method to initialize _saved and
* It returns a list of breakpoint numbers
*/
static int
-gdb_find_bp_at_addr (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
-
+gdb_find_bp_at_addr ( ClientData clientData, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST objv[])
{
int i;
- long addr;
+ CORE_ADDR addr;
if (objc != 2)
{
return TCL_ERROR;
}
- if (Tcl_GetLongFromObj (interp, objv[1], &addr) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
+ addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
for (i = 0; i < breakpoint_list_size; i++)
{
if (breakpoint_list[i] != NULL
- && breakpoint_list[i]->address == (CORE_ADDR) addr)
+ && breakpoint_list[i]->address == addr)
Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
Tcl_NewIntObj (i));
}
* The return value of the call to gdbtk_tcl_breakpoint.
*/
static int
-gdb_set_bp (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_set_bp (ClientData clientData, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST objv[])
{
struct symtab_and_line sal;
int line, thread = -1;
}
typestr = Tcl_GetStringFromObj (objv[3], NULL);
- if (typestr == NULL)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
if (strncmp (typestr, "temp", 4) == 0)
disp = disp_del;
else if (strncmp (typestr, "normal", 6) == 0)
disp = disp_donttouch;
else
{
- Tcl_SetStringObj (result_ptr->obj_ptr,
- "type must be \"temp\" or \"normal\"", -1);
+ Tcl_SetObjResult (interp,
+ Tcl_NewStringObj ("type must be \"temp\" or \"normal\"", -1));
return TCL_ERROR;
}
{
struct symtab_and_line sal;
int thread = -1;
- long addr;
+ CORE_ADDR addr;
struct breakpoint *b;
char *typestr, *buf;
enum bpdisp disp;
return TCL_ERROR;
}
- if (Tcl_GetLongFromObj (interp, objv[1], &addr) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
+ addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
typestr = Tcl_GetStringFromObj (objv[2], NULL);
- if (typestr == NULL)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
if (strncmp (typestr, "temp", 4) == 0)
disp = disp_del;
else if (strncmp (typestr, "normal", 6) == 0)
disp = disp_donttouch;
else
{
- Tcl_SetStringObj (result_ptr->obj_ptr,
- "type must be \"temp\" or \"normal\"", -1);
+ Tcl_SetObjResult (interp,
+ Tcl_NewStringObj ("type must be \"temp\" or \"normal\"", -1));
return TCL_ERROR;
}
* a list of elements followed by an optional ASCII dump */
static int
-gdb_get_mem (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_get_mem (ClientData clientData, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST objv[])
{
int size, asize, i, j, bc;
CORE_ADDR addr;
int nbytes, rnum, bpr;
- long tmp;
char format, buff[128], aschar, *mbuf, *mptr, *cptr, *bptr;
struct type *val_type;
if (objc < 6 || objc > 7)
{
- Tcl_SetStringObj (result_ptr->obj_ptr,
- "addr format size bytes bytes_per_row ?ascii_char?",
- -1);
+ Tcl_WrongNumArgs (interp, 1, objv, "addr format size bytes bytes_per_row ?ascii_char?");
return TCL_ERROR;
}
}
else if (size <= 0)
{
- Tcl_SetStringObj (result_ptr->obj_ptr, "Invalid size, must be > 0", -1);
+ Tcl_SetObjResult (interp, Tcl_NewStringObj ("Invalid size, must be > 0", -1));
return TCL_ERROR;
}
}
else if (nbytes <= 0)
{
- Tcl_SetStringObj (result_ptr->obj_ptr,
- "Invalid number of bytes, must be > 0",
- -1);
+ Tcl_SetObjResult (interp,
+ Tcl_NewStringObj ("Invalid number of bytes, must be > 0", -1));
return TCL_ERROR;
}
}
else if (bpr <= 0)
{
- Tcl_SetStringObj (result_ptr->obj_ptr,
- "Invalid bytes per row, must be > 0", -1);
+ Tcl_SetObjResult (interp,
+ Tcl_NewStringObj ("Invalid bytes per row, must be > 0", -1));
return TCL_ERROR;
}
- if (Tcl_GetLongFromObj (interp, objv[1], &tmp) != TCL_OK)
- return TCL_OK;
-
- addr = (CORE_ADDR) tmp;
+ addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
format = *(Tcl_GetStringFromObj (objv[2], NULL));
mbuf = (char *) malloc (nbytes + 32);
if (!mbuf)
{
- Tcl_SetStringObj (result_ptr->obj_ptr, "Out of memory.", -1);
+ Tcl_SetObjResult (interp, Tcl_NewStringObj ("Out of memory.", -1));
return TCL_ERROR;
}