gintrace/src/main.c

46 lines
1.1 KiB
C

#include "gintrace/gui/menu.h"
#include "gintrace/menu/disasm.h"
#include "gintrace/ubc.h"
#include <gint/gint.h>
#include <gint/keyboard.h>
#include <gint/display.h>
/* save the selected menu */
static struct menu_group *gmenu = NULL;
/* gintrac_handler(): UBC handler */
static void gintrace_handler(struct ucontext *context)
{
gint_switch_to_gint();
menu_init(gmenu, context);
while (menu_is_open(gmenu) == 0) {
menu_draw(gmenu);
menu_keyboard(gmenu);
}
gint_switch_to_casio();
}
int main(void)
{
/* initialize all internal menu and get the "first" menu to display */
menu_create(&gmenu);
menu_register(gmenu, &menu_disasm, "Disasm");
menu_register(gmenu, NULL, "Context");
menu_register(gmenu, NULL, "Hexdump");
menu_register(gmenu, NULL, "TLB");
menu_register(gmenu, NULL, "CallG");
menu_register(gmenu, NULL, "BBBBB");
/* intialize UBC information */
ubc_install();
ubc_set_handler(&gintrace_handler);
ubc_set_breakpoint(0, (void*)0x80358a6c, NULL);
/* try to trace the function */
gint_switch((void *)0x80358a6c);
//TODO : destructor part !!
return (0);
}