mirror of https://github.com/bochs-emu/Bochs
convert debugger command line parser YACC to generate C++ source instead of pure C
use bool instead of bx_bool in all bx_debug stuff (now possible when YACC script have generated C++ source)
This commit is contained in:
parent
3cf2807dce
commit
44d7906420
|
@ -89,19 +89,19 @@ dist-clean: clean
|
|||
|
||||
parse-clean:
|
||||
@RMCOMMAND@ -f lexer.c
|
||||
@RMCOMMAND@ -f parser.c
|
||||
@RMCOMMAND@ -f parser.cc
|
||||
@RMCOMMAND@ -f parser.h
|
||||
|
||||
dbg_main.o: debug.h
|
||||
|
||||
@NO_FLEX_YACC@parser.c: parser.y
|
||||
@NO_FLEX_YACC@ @/bin/rm -f y.tab.c parser.c
|
||||
@NO_FLEX_YACC@parser.cc: parser.y
|
||||
@NO_FLEX_YACC@ @/bin/rm -f y.tab.c parser.cc
|
||||
@NO_FLEX_YACC@ @/bin/rm -f y.tab.h parser.h
|
||||
@NO_FLEX_YACC@ $(YACC) -p bx -d $<
|
||||
@NO_FLEX_YACC@ @/bin/mv -f y.tab.c parser.c
|
||||
@NO_FLEX_YACC@ @/bin/mv -f y.tab.c parser.cc
|
||||
@NO_FLEX_YACC@ @/bin/mv -f y.tab.h parser.h
|
||||
@NO_FLEX_YACC@ @echo '#endif /* if BX_DEBUGGER */' >> parser.c
|
||||
@NO_FLEX_YACC@ @echo '/* The #endif is appended by the makefile after running yacc. */' >> parser.c
|
||||
@NO_FLEX_YACC@ @echo '#endif /* if BX_DEBUGGER */' >> parser.cc
|
||||
@NO_FLEX_YACC@ @echo '/* The #endif is appended by the makefile after running yacc. */' >> parser.cc
|
||||
|
||||
@NO_FLEX_YACC@lexer.c: lexer.l
|
||||
@NO_FLEX_YACC@ $(LEX) -Pbx -t $< > lexer.c
|
||||
|
@ -112,7 +112,7 @@ dbg_main.o: debug.h
|
|||
###########################################
|
||||
lexer.o: lexer.c debug.h ../config.h ../osdep.h ../cpu/decoder/decoder.h \
|
||||
parser.h
|
||||
parser.o: parser.c debug.h ../config.h ../osdep.h \
|
||||
parser.o: parser.cc debug.h ../config.h ../osdep.h \
|
||||
../cpu/decoder/decoder.h
|
||||
dbg_breakpoints.o: dbg_breakpoints.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \
|
||||
../bx_debug/debug.h ../config.h ../osdep.h ../cpu/decoder/decoder.h \
|
||||
|
|
|
@ -50,7 +50,7 @@ void bx_dbg_breakpoint_changed(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void bx_dbg_en_dis_breakpoint_command(unsigned handle, bx_bool enable)
|
||||
void bx_dbg_en_dis_breakpoint_command(unsigned handle, bool enable)
|
||||
{
|
||||
#if (BX_DBG_MAX_VIR_BPOINTS > 0)
|
||||
if (bx_dbg_en_dis_vbreak(handle, enable))
|
||||
|
@ -74,7 +74,7 @@ done:
|
|||
bx_dbg_breakpoint_changed();
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_en_dis_pbreak(unsigned handle, bx_bool enable)
|
||||
bool bx_dbg_en_dis_pbreak(unsigned handle, bool enable)
|
||||
{
|
||||
#if (BX_DBG_MAX_PHY_BPOINTS > 0)
|
||||
// see if breakpoint is a physical breakpoint
|
||||
|
@ -88,7 +88,7 @@ bx_bool bx_dbg_en_dis_pbreak(unsigned handle, bx_bool enable)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_en_dis_lbreak(unsigned handle, bx_bool enable)
|
||||
bool bx_dbg_en_dis_lbreak(unsigned handle, bool enable)
|
||||
{
|
||||
#if (BX_DBG_MAX_LIN_BPOINTS > 0)
|
||||
// see if breakpoint is a linear breakpoint
|
||||
|
@ -102,7 +102,7 @@ bx_bool bx_dbg_en_dis_lbreak(unsigned handle, bx_bool enable)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_en_dis_vbreak(unsigned handle, bx_bool enable)
|
||||
bool bx_dbg_en_dis_vbreak(unsigned handle, bool enable)
|
||||
{
|
||||
#if (BX_DBG_MAX_VIR_BPOINTS > 0)
|
||||
// see if breakpoint is a virtual breakpoint
|
||||
|
@ -140,7 +140,7 @@ done:
|
|||
bx_dbg_breakpoint_changed();
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_del_pbreak(unsigned handle)
|
||||
bool bx_dbg_del_pbreak(unsigned handle)
|
||||
{
|
||||
#if (BX_DBG_MAX_PHY_BPOINTS > 0)
|
||||
// see if breakpoint is a physical breakpoint
|
||||
|
@ -159,7 +159,7 @@ bx_bool bx_dbg_del_pbreak(unsigned handle)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_del_lbreak(unsigned handle)
|
||||
bool bx_dbg_del_lbreak(unsigned handle)
|
||||
{
|
||||
#if (BX_DBG_MAX_LIN_BPOINTS > 0)
|
||||
// see if breakpoint is a linear breakpoint
|
||||
|
@ -178,7 +178,7 @@ bx_bool bx_dbg_del_lbreak(unsigned handle)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_del_vbreak(unsigned handle)
|
||||
bool bx_dbg_del_vbreak(unsigned handle)
|
||||
{
|
||||
#if (BX_DBG_MAX_VIR_BPOINTS > 0)
|
||||
// see if breakpoint is a virtual breakpoint
|
||||
|
|
|
@ -55,7 +55,7 @@ void bx_dbg_print_descriptor(Bit32u lo, Bit32u hi);
|
|||
void bx_dbg_print_descriptor64(Bit32u lo1, Bit32u hi1, Bit32u lo2, Bit32u hi2);
|
||||
|
||||
static bx_param_bool_c *sim_running = NULL;
|
||||
static bx_bool bx_dbg_exit_called;
|
||||
static bool bx_dbg_exit_called;
|
||||
|
||||
static char tmp_buf[512];
|
||||
static char tmp_buf_prev[512];
|
||||
|
@ -66,7 +66,7 @@ static FILE *debugger_log = NULL;
|
|||
|
||||
static struct bx_debugger_state {
|
||||
// some fields used for single CPU debugger
|
||||
bx_bool auto_disassemble;
|
||||
bool auto_disassemble;
|
||||
unsigned disassemble_size;
|
||||
char default_display_format;
|
||||
char default_unit_size;
|
||||
|
@ -119,11 +119,11 @@ static struct {
|
|||
} bx_dbg_batch_dma;
|
||||
|
||||
// some buffers for disassembly
|
||||
static bx_bool disasm_syntax_intel = 1;
|
||||
static bool disasm_syntax_intel = 1;
|
||||
static Bit8u bx_disasm_ibuf[32];
|
||||
static char bx_disasm_tbuf[512];
|
||||
|
||||
static bx_bool watchpoint_continue = 0;
|
||||
static bool watchpoint_continue = 0;
|
||||
unsigned num_write_watchpoints = 0;
|
||||
unsigned num_read_watchpoints = 0;
|
||||
bx_watchpoint write_watchpoint[BX_DBG_MAX_WATCHPONTS];
|
||||
|
@ -160,7 +160,7 @@ int bx_dbg_set_rcfile(const char *rcfile)
|
|||
return bx_nest_infile((char*)rcfile);
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_register_debug_info(const char *devname, void *dev)
|
||||
bool bx_dbg_register_debug_info(const char *devname, void *dev)
|
||||
{
|
||||
debug_info_t *debug_info = new debug_info_t;
|
||||
debug_info->name = devname;
|
||||
|
@ -195,7 +195,7 @@ void bx_dbg_info_cleanup(void)
|
|||
bx_debug_info_list = NULL;
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_info_find_device(const char *devname, debug_info_t **found_debug_info)
|
||||
bool bx_dbg_info_find_device(const char *devname, debug_info_t **found_debug_info)
|
||||
{
|
||||
debug_info_t *debug_info;
|
||||
|
||||
|
@ -589,7 +589,7 @@ void bx_dbg_halt(unsigned cpu)
|
|||
}
|
||||
}
|
||||
|
||||
void bx_dbg_watchpoint_continue(bx_bool watch_continue)
|
||||
void bx_dbg_watchpoint_continue(bool watch_continue)
|
||||
{
|
||||
watchpoint_continue = watch_continue;
|
||||
if (watchpoint_continue) {
|
||||
|
@ -1231,21 +1231,21 @@ void bx_dbg_quit_command(void)
|
|||
bx_dbg_exit(0);
|
||||
}
|
||||
|
||||
void bx_dbg_trace_command(bx_bool enable)
|
||||
void bx_dbg_trace_command(bool enable)
|
||||
{
|
||||
BX_CPU(dbg_cpu)->trace = enable;
|
||||
dbg_printf("Tracing %s for CPU%d\n", enable ? "enabled" : "disabled",
|
||||
BX_CPU(dbg_cpu)->which_cpu());
|
||||
}
|
||||
|
||||
void bx_dbg_trace_reg_command(bx_bool enable)
|
||||
void bx_dbg_trace_reg_command(bool enable)
|
||||
{
|
||||
BX_CPU(dbg_cpu)->trace_reg = enable;
|
||||
dbg_printf("Register-Tracing %s for CPU%d\n", enable ? "enabled" : "disabled",
|
||||
BX_CPU(dbg_cpu)->which_cpu());
|
||||
}
|
||||
|
||||
void bx_dbg_trace_mem_command(bx_bool enable)
|
||||
void bx_dbg_trace_mem_command(bool enable)
|
||||
{
|
||||
BX_CPU(dbg_cpu)->trace_mem = enable;
|
||||
dbg_printf("Memory-Tracing %s for CPU%d\n", enable ? "enabled" : "disabled",
|
||||
|
@ -1261,7 +1261,7 @@ int timebp_timer = -1;
|
|||
Bit64u timebp_queue[MAX_CONCURRENT_BPS];
|
||||
int timebp_queue_size = 0;
|
||||
|
||||
void bx_dbg_timebp_command(bx_bool absolute, Bit64u time)
|
||||
void bx_dbg_timebp_command(bool absolute, Bit64u time)
|
||||
{
|
||||
Bit64u abs_time = (absolute) ? time : time + bx_pc_system.time_ticks();
|
||||
|
||||
|
@ -1359,12 +1359,12 @@ void bx_dbg_vmexitbp_command()
|
|||
#endif
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_read_linear(unsigned which_cpu, bx_address laddr, unsigned len, Bit8u *buf)
|
||||
bool bx_dbg_read_linear(unsigned which_cpu, bx_address laddr, unsigned len, Bit8u *buf)
|
||||
{
|
||||
unsigned remainsInPage;
|
||||
bx_phy_address paddr;
|
||||
unsigned read_len;
|
||||
bx_bool paddr_valid;
|
||||
bool paddr_valid;
|
||||
|
||||
next_page:
|
||||
remainsInPage = 0x1000 - PAGE_OFFSET(laddr);
|
||||
|
@ -1416,7 +1416,7 @@ void bx_dbg_where_command()
|
|||
Bit8u buf[4];
|
||||
|
||||
// bp = [bp];
|
||||
bx_bool paddr_valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(bp, &paddr);
|
||||
bool paddr_valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(bp, &paddr);
|
||||
if (paddr_valid) {
|
||||
if (BX_MEM(0)->dbg_fetch_mem(BX_CPU(dbg_cpu), paddr, 4, buf)) {
|
||||
bp = conv_4xBit8u_to_Bit32u(buf);
|
||||
|
@ -1485,7 +1485,7 @@ void bx_dbg_xlate_address(bx_lin_address laddr)
|
|||
|
||||
laddr &= BX_CONST64(0xfffffffffffff000);
|
||||
|
||||
bx_bool paddr_valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(laddr, &paddr, &lpf_mask, 1);
|
||||
bool paddr_valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(laddr, &paddr, &lpf_mask, 1);
|
||||
if (paddr_valid) {
|
||||
dbg_printf("linear page 0x" FMT_ADDRX " maps to physical page 0x" FMT_PHY_ADDRX "\n", laddr, paddr);
|
||||
}
|
||||
|
@ -1611,7 +1611,7 @@ void bx_dbg_show_command(const char* arg)
|
|||
}
|
||||
}
|
||||
|
||||
void bx_dbg_show_param_command(const char *param, bx_bool xml)
|
||||
void bx_dbg_show_param_command(const char *param, bool xml)
|
||||
{
|
||||
dbg_printf("show param name: <%s>\n", param);
|
||||
bx_param_c *node = SIM->get_param(param, SIM->get_bochs_root());
|
||||
|
@ -1683,7 +1683,7 @@ int bx_dbg_show_symbolic(void)
|
|||
{
|
||||
if(BX_CPU(dbg_cpu)->show_flag & Flag_call) {
|
||||
bx_phy_address phy = 0;
|
||||
bx_bool valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(BX_CPU(dbg_cpu)->guard_found.laddr, &phy);
|
||||
bool valid = BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(BX_CPU(dbg_cpu)->guard_found.laddr, &phy);
|
||||
dbg_printf(FMT_TICK ": call ", bx_pc_system.time_ticks());
|
||||
dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(),
|
||||
BX_CPU(dbg_cpu)->guard_found.cs, BX_CPU(dbg_cpu)->guard_found.eip,
|
||||
|
@ -1947,7 +1947,7 @@ void bx_dbg_unwatch(bx_phy_address address)
|
|||
}
|
||||
}
|
||||
|
||||
void bx_dbg_continue_command(bx_bool expression)
|
||||
void bx_dbg_continue_command(bool expression)
|
||||
{
|
||||
if (! expression) {
|
||||
dbg_printf("continue condition is FALSE\n");
|
||||
|
@ -2098,7 +2098,7 @@ void bx_dbg_disassemble_current(int which_cpu, int print_time)
|
|||
return;
|
||||
}
|
||||
|
||||
bx_bool phy_valid = BX_CPU(which_cpu)->dbg_xlate_linear2phy(BX_CPU(which_cpu)->guard_found.laddr, &phy);
|
||||
bool phy_valid = BX_CPU(which_cpu)->dbg_xlate_linear2phy(BX_CPU(which_cpu)->guard_found.laddr, &phy);
|
||||
if (! phy_valid) {
|
||||
dbg_printf("(%u).[" FMT_LL "d] ??? (physical address not available)\n", which_cpu, bx_pc_system.time_ticks());
|
||||
return;
|
||||
|
@ -2235,7 +2235,7 @@ void bx_dbg_set_icount_guard(int which_cpu, Bit32u n)
|
|||
BX_CPU(which_cpu)->guard_found.guard_found = 0;
|
||||
}
|
||||
|
||||
void bx_dbg_set_auto_disassemble(bx_bool enable)
|
||||
void bx_dbg_set_auto_disassemble(bool enable)
|
||||
{
|
||||
bx_debugger.auto_disassemble = enable;
|
||||
}
|
||||
|
@ -2308,19 +2308,19 @@ void dbg_printf_binary(const char *format, Bit32u data, int bits)
|
|||
dbg_printf(format, num);
|
||||
}
|
||||
|
||||
void bx_dbg_examine_command(const char *command, const char *format, bx_bool format_passed,
|
||||
bx_address addr, bx_bool addr_passed)
|
||||
void bx_dbg_examine_command(const char *command, const char *format, bool format_passed,
|
||||
bx_address addr, bool addr_passed)
|
||||
{
|
||||
unsigned repeat_count, i;
|
||||
char ch, display_format, unit_size;
|
||||
bx_bool iteration, memory_dump = false;
|
||||
bool iteration, memory_dump = false;
|
||||
unsigned data_size;
|
||||
Bit8u data8;
|
||||
Bit16u data16;
|
||||
Bit32u data32;
|
||||
Bit64u data64;
|
||||
unsigned columns, per_line, offset;
|
||||
bx_bool is_linear;
|
||||
bool is_linear;
|
||||
Bit8u databuf[8];
|
||||
|
||||
dbg_printf("[bochs]:\n");
|
||||
|
@ -2705,7 +2705,7 @@ void bx_dbg_setpmem_command(bx_phy_address paddr, unsigned len, Bit32u val)
|
|||
|
||||
void bx_dbg_set_symbol_command(const char *symbol, bx_address val)
|
||||
{
|
||||
bx_bool is_OK = false;
|
||||
bool is_OK = false;
|
||||
symbol++; // get past '$'
|
||||
|
||||
if (!strcmp(symbol, "eip") || !strcmp(symbol, "rip")) {
|
||||
|
@ -3046,7 +3046,7 @@ void bx_dbg_info_idt_command(unsigned from, unsigned to)
|
|||
{
|
||||
bx_dbg_global_sreg_t idtr;
|
||||
BX_CPU(dbg_cpu)->dbg_get_idtr(&idtr);
|
||||
bx_bool all = 0;
|
||||
bool all = 0;
|
||||
|
||||
if (to == (unsigned) EMPTY_ARG) {
|
||||
to = from;
|
||||
|
@ -3112,7 +3112,7 @@ void bx_dbg_info_gdt_command(unsigned from, unsigned to)
|
|||
{
|
||||
bx_dbg_global_sreg_t gdtr;
|
||||
BX_CPU(dbg_cpu)->dbg_get_gdtr(&gdtr);
|
||||
bx_bool all = 0;
|
||||
bool all = 0;
|
||||
|
||||
if (to == (unsigned) EMPTY_ARG) {
|
||||
to = from;
|
||||
|
@ -3154,7 +3154,7 @@ void bx_dbg_info_ldt_command(unsigned from, unsigned to)
|
|||
bx_address ldtr_base = SIM->get_param_num("LDTR.base", dbg_cpu_list)->get64();
|
||||
Bit32u ldtr_limit = SIM->get_param_num("LDTR.limit_scaled", dbg_cpu_list)->get();
|
||||
|
||||
bx_bool all = 0;
|
||||
bool all = 0;
|
||||
|
||||
if (to == (unsigned) EMPTY_ARG) {
|
||||
to = from;
|
||||
|
@ -3245,7 +3245,7 @@ void bx_dbg_info_ivt_command(unsigned from, unsigned to)
|
|||
{
|
||||
unsigned char buff[4];
|
||||
unsigned seg, off;
|
||||
bx_bool all = 0;
|
||||
bool all = 0;
|
||||
bx_dbg_global_sreg_t idtr;
|
||||
|
||||
BX_CPU(dbg_cpu)->dbg_get_idtr(&idtr);
|
||||
|
@ -3536,7 +3536,7 @@ void bx_dbg_dump_table(void)
|
|||
Bit64u lin, start_lin; // show only low 32 bit
|
||||
bx_phy_address phy, start_phy; // start of a valid translation interval
|
||||
bx_address lpf_mask = 0;
|
||||
bx_bool valid;
|
||||
bool valid;
|
||||
|
||||
if (! BX_CPU(dbg_cpu)->cr0.get_PG()) {
|
||||
dbg_printf("paging off\n");
|
||||
|
@ -3611,7 +3611,7 @@ void bx_dbg_calc_command(Bit64u value)
|
|||
dbg_printf("0x" FMT_LL "x " FMT_LL "d\n", eval_value, eval_value);
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_eval_condition(char *condition)
|
||||
bool bx_dbg_eval_condition(char *condition)
|
||||
{
|
||||
extern Bit64u eval_value;
|
||||
bx_dbg_interpret_line(condition);
|
||||
|
@ -3769,7 +3769,7 @@ bx_address bx_dbg_get_rip(void)
|
|||
return BX_CPU(dbg_cpu)->get_instruction_pointer();
|
||||
}
|
||||
|
||||
bx_bool bx_dbg_read_pmode_descriptor(Bit16u sel, bx_descriptor_t *descriptor)
|
||||
bool bx_dbg_read_pmode_descriptor(Bit16u sel, bx_descriptor_t *descriptor)
|
||||
{
|
||||
bx_selector_t selector;
|
||||
Bit32u dword1, dword2;
|
||||
|
|
|
@ -31,16 +31,14 @@ Bit32u crc32(const Bit8u *buf, int len);
|
|||
|
||||
#if BX_DEBUGGER
|
||||
|
||||
#include "cpu/decoder/decoder.h"
|
||||
|
||||
// some strict C declarations needed by the parser/lexer
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern Bit32u dbg_cpu;
|
||||
|
||||
void dbg_printf (const char *fmt, ...);
|
||||
|
||||
#include "cpu/decoder/decoder.h"
|
||||
void dbg_printf(const char *fmt, ...);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
@ -58,22 +56,24 @@ typedef enum _show_flags {
|
|||
Flag_mode = 0x20,
|
||||
} show_flags_t;
|
||||
|
||||
// Flex defs
|
||||
extern int bxlex(void);
|
||||
extern char *bxtext; // Using the pointer option rather than array
|
||||
extern int bxwrap(void);
|
||||
void bx_add_lex_input(char *buf);
|
||||
extern "C" {
|
||||
// Flex defs
|
||||
extern int bxlex(void);
|
||||
extern char *bxtext; // Using the pointer option rather than array
|
||||
extern int bxwrap(void);
|
||||
extern void bx_add_lex_input(char *buf);
|
||||
|
||||
// Yacc defs
|
||||
extern int bxparse(void);
|
||||
extern void bxerror(const char *s);
|
||||
// Yacc defs
|
||||
extern int bxparse(void);
|
||||
extern void bxerror(const char *s);
|
||||
};
|
||||
|
||||
// register function for 'info device' command
|
||||
bx_bool bx_dbg_register_debug_info(const char *devname, void *dev);
|
||||
bool bx_dbg_register_debug_info(const char *devname, void *dev);
|
||||
|
||||
#define EMPTY_ARG (-1)
|
||||
|
||||
bx_bool bx_dbg_read_linear(unsigned which_cpu, bx_address laddr, unsigned len, Bit8u *buf);
|
||||
bool bx_dbg_read_linear(unsigned which_cpu, bx_address laddr, unsigned len, Bit8u *buf);
|
||||
Bit16u bx_dbg_get_selector_value(unsigned int seg_no);
|
||||
Bit16u bx_dbg_get_ip (void);
|
||||
Bit32u bx_dbg_get_eip(void);
|
||||
|
@ -94,11 +94,11 @@ void bx_dbg_set_rip_value(bx_address value);
|
|||
void bx_dbg_load_segreg(unsigned reg, unsigned value);
|
||||
bx_address bx_dbg_get_laddr(Bit16u sel, bx_address ofs);
|
||||
void bx_dbg_step_over_command(void);
|
||||
void bx_dbg_trace_command(bx_bool enable);
|
||||
void bx_dbg_trace_reg_command(bx_bool enable);
|
||||
void bx_dbg_trace_mem_command(bx_bool enable);
|
||||
void bx_dbg_trace_command(bool enable);
|
||||
void bx_dbg_trace_reg_command(bool enable);
|
||||
void bx_dbg_trace_mem_command(bool enable);
|
||||
void bx_dbg_ptime_command(void);
|
||||
void bx_dbg_timebp_command(bx_bool absolute, Bit64u time);
|
||||
void bx_dbg_timebp_command(bool absolute, Bit64u time);
|
||||
#define MAX_CONCURRENT_BPS 5
|
||||
extern int timebp_timer;
|
||||
extern Bit64u timebp_queue[MAX_CONCURRENT_BPS];
|
||||
|
@ -113,23 +113,23 @@ void bx_dbg_show_command(const char*);
|
|||
void bx_dbg_print_stack_command(unsigned nwords);
|
||||
void bx_dbg_bt_command(unsigned dist);
|
||||
void bx_dbg_print_watchpoints(void);
|
||||
void bx_dbg_watchpoint_continue(bx_bool watch_continue);
|
||||
void bx_dbg_watchpoint_continue(bool watch_continue);
|
||||
void bx_dbg_watch(int type, bx_phy_address address, Bit32u len);
|
||||
void bx_dbg_unwatch_all(void);
|
||||
void bx_dbg_unwatch(bx_phy_address handle);
|
||||
void bx_dbg_continue_command(bx_bool expression);
|
||||
void bx_dbg_continue_command(bool expression);
|
||||
void bx_dbg_stepN_command(int cpu, Bit32u count);
|
||||
void bx_dbg_set_auto_disassemble(bx_bool enable);
|
||||
void bx_dbg_set_auto_disassemble(bool enable);
|
||||
void bx_dbg_disassemble_switch_mode(void);
|
||||
void bx_dbg_set_disassemble_size(unsigned size);
|
||||
void bx_dbg_del_breakpoint_command(unsigned handle);
|
||||
void bx_dbg_en_dis_breakpoint_command(unsigned handle, bx_bool enable);
|
||||
bx_bool bx_dbg_en_dis_pbreak(unsigned handle, bx_bool enable);
|
||||
bx_bool bx_dbg_en_dis_lbreak(unsigned handle, bx_bool enable);
|
||||
bx_bool bx_dbg_en_dis_vbreak(unsigned handle, bx_bool enable);
|
||||
bx_bool bx_dbg_del_pbreak(unsigned handle);
|
||||
bx_bool bx_dbg_del_lbreak(unsigned handle);
|
||||
bx_bool bx_dbg_del_vbreak(unsigned handle);
|
||||
void bx_dbg_en_dis_breakpoint_command(unsigned handle, bool enable);
|
||||
bool bx_dbg_en_dis_pbreak(unsigned handle, bool enable);
|
||||
bool bx_dbg_en_dis_lbreak(unsigned handle, bool enable);
|
||||
bool bx_dbg_en_dis_vbreak(unsigned handle, bool enable);
|
||||
bool bx_dbg_del_pbreak(unsigned handle);
|
||||
bool bx_dbg_del_lbreak(unsigned handle);
|
||||
bool bx_dbg_del_vbreak(unsigned handle);
|
||||
int bx_dbg_vbreakpoint_command(BreakpointKind bk, Bit32u cs, bx_address eip, const char *condition);
|
||||
int bx_dbg_lbreakpoint_command(BreakpointKind bk, bx_address laddress, const char *condition);
|
||||
int bx_dbg_pbreakpoint_command(BreakpointKind bk, bx_phy_address paddress, const char *condition);
|
||||
|
@ -152,8 +152,8 @@ void bx_dbg_info_control_regs_command(void);
|
|||
void bx_dbg_info_segment_regs_command(void);
|
||||
void bx_dbg_info_flags(void);
|
||||
void bx_dbg_info_linux_command(void);
|
||||
void bx_dbg_examine_command(const char *command, const char *format, bx_bool format_passed,
|
||||
bx_address addr, bx_bool addr_passed);
|
||||
void bx_dbg_examine_command(const char *command, const char *format, bool format_passed,
|
||||
bx_address addr, bool addr_passed);
|
||||
Bit32u bx_dbg_lin_indirect(bx_address addr);
|
||||
Bit32u bx_dbg_phy_indirect(bx_phy_address addr);
|
||||
void bx_dbg_writemem_command(const char *filename, bx_address laddr, unsigned len);
|
||||
|
@ -170,7 +170,7 @@ void bx_dbg_info_device(const char *, const char *);
|
|||
void bx_dbg_print_help(void);
|
||||
void bx_dbg_calc_command(Bit64u value);
|
||||
void bx_dbg_dump_table(void);
|
||||
bx_bool bx_dbg_eval_condition(char *condition);
|
||||
bool bx_dbg_eval_condition(char *condition);
|
||||
|
||||
// callbacks from CPU
|
||||
void bx_dbg_exception(unsigned cpu, Bit8u vector, Bit16u error_code);
|
||||
|
@ -186,24 +186,17 @@ void bx_dbg_check_memory_watchpoints(unsigned cpu, bx_phy_address phy, unsigned
|
|||
|
||||
// commands that work with Bochs param tree
|
||||
void bx_dbg_restore_command(const char *param_name, const char *path);
|
||||
void bx_dbg_show_param_command(const char *param, bx_bool xml);
|
||||
void bx_dbg_show_param_command(const char *param, bool xml);
|
||||
|
||||
int bx_dbg_show_symbolic(void);
|
||||
void bx_dbg_set_symbol_command(const char *symbol, bx_address val);
|
||||
const char* bx_dbg_symbolic_address(bx_address context, bx_address eip, bx_address base);
|
||||
int bx_dbg_symbol_command(const char* filename, bx_bool global, bx_address offset);
|
||||
int bx_dbg_symbol_command(const char* filename, bool global, bx_address offset);
|
||||
void bx_dbg_info_symbols_command(const char *Symbol);
|
||||
int bx_dbg_lbreakpoint_symbol_command(const char *Symbol, const char *condition);
|
||||
bx_address bx_dbg_get_symbol_value(const char *Symbol);
|
||||
const char* bx_dbg_disasm_symbolic_address(bx_address eip, bx_address base);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
// the rest for C++
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef enum {
|
||||
STOP_NO_REASON = 0,
|
||||
STOP_TIME_BREAK_POINT,
|
||||
|
|
|
@ -286,7 +286,7 @@ union YYSTYPE
|
|||
|
||||
char *sval;
|
||||
Bit64u uval;
|
||||
bx_bool bval;
|
||||
unsigned bval;
|
||||
|
||||
#line 292 "y.tab.h" /* yacc.c:1909 */
|
||||
};
|
||||
|
|
|
@ -14,7 +14,7 @@ Bit64u eval_value;
|
|||
%union {
|
||||
char *sval;
|
||||
Bit64u uval;
|
||||
bx_bool bval;
|
||||
unsigned bval;
|
||||
}
|
||||
|
||||
// Common registers
|
||||
|
|
|
@ -29,7 +29,7 @@ static const char BX_HAVE_MAP_ERR[] = "context not implemented because BX_HAVE_M
|
|||
|
||||
const char* bx_dbg_symbolic_address(bx_address context, bx_address eip, bx_address base)
|
||||
{
|
||||
static bx_bool first = true;
|
||||
static bool first = true;
|
||||
if (first) {
|
||||
dbg_printf(BX_HAVE_MAP_ERR);
|
||||
first = false;
|
||||
|
@ -37,7 +37,7 @@ const char* bx_dbg_symbolic_address(bx_address context, bx_address eip, bx_addre
|
|||
return "unk. ctxt";
|
||||
}
|
||||
|
||||
int bx_dbg_symbol_command(const char* filename, bx_bool global, bx_address offset)
|
||||
int bx_dbg_symbol_command(const char* filename, bool global, bx_address offset)
|
||||
{
|
||||
dbg_printf(BX_HAVE_MAP_ERR);
|
||||
return -1;
|
||||
|
@ -273,7 +273,7 @@ const char* bx_dbg_disasm_symbolic_address(bx_address xip, bx_address base)
|
|||
return buf;
|
||||
}
|
||||
|
||||
int bx_dbg_symbol_command(const char* filename, bx_bool global, bx_address offset)
|
||||
int bx_dbg_symbol_command(const char* filename, bool global, bx_address offset)
|
||||
{
|
||||
symbol_entry_t file(0, filename);
|
||||
file.trim_quotes();
|
||||
|
|
Loading…
Reference in New Issue