Avoid ddb getting a panic if the code-segment isn't the usual one...

This commit is contained in:
Poul-Henning Kamp 1994-10-02 19:36:30 +00:00
parent 336f97b7ad
commit 45a0b89468
3 changed files with 15 additions and 12 deletions

View File

@ -23,7 +23,7 @@
* any improvements or extensions that they make and grant Carnegie Mellon
* the rights to redistribute these changes.
*
* $Id: db_machdep.h,v 1.3 1993/11/07 17:42:50 wollman Exp $
* $Id: db_machdep.h,v 1.4 1994/09/08 11:49:04 bde Exp $
*/
#ifndef _I386_DB_MACHDEP_H_
@ -55,7 +55,7 @@ typedef struct i386_saved_state db_regs_t;
extern db_regs_t ddb_regs; /* register state */
#define DDB_REGS (&ddb_regs)
#define PC_REGS(regs) ((db_addr_t)(regs)->tf_eip)
#define PC_REGS(regs) ((regs)->tf_cs == 0x08 ? (db_addr_t)(regs)->tf_eip : 0)
#define BKPT_INST 0xcc /* breakpoint instruction */
#define BKPT_SIZE (1) /* size of breakpoint inst */

View File

@ -23,7 +23,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
* $Id: db_trap.c,v 1.4 1994/08/13 03:49:24 wollman Exp $
* $Id: db_trap.c,v 1.5 1994/08/18 22:34:27 wollman Exp $
*/
/*
@ -57,14 +57,17 @@ db_trap(type, code)
db_printf("After %d instructions (%d loads, %d stores),\n",
db_inst_count, db_load_count, db_store_count);
}
if (bkpt)
db_printf("Breakpoint at\t");
else if (watchpt)
db_printf("Watchpoint at\t");
else
db_printf("Stopped at\t");
db_dot = PC_REGS(DDB_REGS);
db_print_loc_and_inst(db_dot);
if(db_dot) {
if (bkpt)
db_printf("Breakpoint at\t");
else if (watchpt)
db_printf("Watchpoint at\t");
else
db_printf("Stopped at\t");
db_print_loc_and_inst(db_dot);
}
db_command_loop();
}

View File

@ -23,7 +23,7 @@
* any improvements or extensions that they make and grant Carnegie Mellon
* the rights to redistribute these changes.
*
* $Id: db_machdep.h,v 1.3 1993/11/07 17:42:50 wollman Exp $
* $Id: db_machdep.h,v 1.4 1994/09/08 11:49:04 bde Exp $
*/
#ifndef _I386_DB_MACHDEP_H_
@ -55,7 +55,7 @@ typedef struct i386_saved_state db_regs_t;
extern db_regs_t ddb_regs; /* register state */
#define DDB_REGS (&ddb_regs)
#define PC_REGS(regs) ((db_addr_t)(regs)->tf_eip)
#define PC_REGS(regs) ((regs)->tf_cs == 0x08 ? (db_addr_t)(regs)->tf_eip : 0)
#define BKPT_INST 0xcc /* breakpoint instruction */
#define BKPT_SIZE (1) /* size of breakpoint inst */