From da1c56c5b565d92e623dfb59e84e47b19bf0b4c5 Mon Sep 17 00:00:00 2001 From: hunt Date: Mon, 29 Oct 2001 19:37:04 +0000 Subject: [PATCH] 2001-10-29 Martin M. Hunt * 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. --- gdb/gdbtk/ChangeLog | 17 ++++++++++++-- gdb/gdbtk/generic/gdbtk-bp.c | 51 +++++++++++------------------------------- gdb/gdbtk/generic/gdbtk-cmds.c | 30 +++++++++---------------- 3 files changed, 38 insertions(+), 60 deletions(-) diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog index 79455d1b88..e7e7cf5720 100644 --- a/gdb/gdbtk/ChangeLog +++ b/gdb/gdbtk/ChangeLog @@ -1,3 +1,16 @@ +2001-10-29 Martin M. Hunt + + * 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 * tclIndex: Updated. @@ -12,9 +25,9 @@ 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 - + * library/srcpref.itb (SrcPref::contructor): Move array initialization to _init_var. (SrcPref::_init_var): New method to initialize _saved and diff --git a/gdb/gdbtk/generic/gdbtk-bp.c b/gdb/gdbtk/generic/gdbtk-bp.c index 0d96756e02..37481805e3 100644 --- a/gdb/gdbtk/generic/gdbtk-bp.c +++ b/gdb/gdbtk/generic/gdbtk-bp.c @@ -200,15 +200,11 @@ Gdbtk_Breakpoint_Init (Tcl_Interp *interp) * 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) { @@ -216,17 +212,13 @@ gdb_find_bp_at_addr (clientData, interp, objc, objv) 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)); } @@ -489,11 +481,8 @@ gdb_get_breakpoint_list (clientData, interp, objc, objv) * 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; @@ -518,19 +507,14 @@ gdb_set_bp (clientData, interp, objc, objv) } 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; } @@ -582,7 +566,7 @@ gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc, { struct symtab_and_line sal; int thread = -1; - long addr; + CORE_ADDR addr; struct breakpoint *b; char *typestr, *buf; enum bpdisp disp; @@ -593,26 +577,17 @@ gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc, 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; } diff --git a/gdb/gdbtk/generic/gdbtk-cmds.c b/gdb/gdbtk/generic/gdbtk-cmds.c index ddc6a1a481..6b208da5ef 100644 --- a/gdb/gdbtk/generic/gdbtk-cmds.c +++ b/gdb/gdbtk/generic/gdbtk-cmds.c @@ -2567,24 +2567,18 @@ gdb_set_mem (clientData, interp, objc, objv) * 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; } @@ -2595,7 +2589,7 @@ gdb_get_mem (clientData, interp, objc, objv) } 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; } @@ -2606,9 +2600,8 @@ gdb_get_mem (clientData, interp, objc, objv) } 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; } @@ -2619,21 +2612,18 @@ gdb_get_mem (clientData, interp, objc, objv) } 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; } -- 2.11.0