stage0 重命名字段 修复windows函数没有进入宏包装
This commit is contained in:
@@ -189,7 +189,7 @@ typedef struct {
|
||||
|
||||
static const char *fn_name_at(spl_prog_t *prog, usize ip) {
|
||||
for (usize i = 0; i < vec_size(prog->funcs); i++) {
|
||||
spl_func_t *f = &vec_at(prog->funcs, i);
|
||||
spl_vm_func_t *f = &vec_at(prog->funcs, i);
|
||||
if (ip >= f->address && ip < f->address + f->ninsns)
|
||||
return f->name ? f->name : "?";
|
||||
}
|
||||
@@ -201,7 +201,7 @@ static void cur_func_bounds(spl_prog_t *prog, usize ip, usize *start, usize *end
|
||||
*start = 0;
|
||||
*end = vec_size(prog->insns);
|
||||
for (usize i = 0; i < vec_size(prog->funcs); i++) {
|
||||
spl_func_t *f = &vec_at(prog->funcs, i);
|
||||
spl_vm_func_t *f = &vec_at(prog->funcs, i);
|
||||
if (ip >= f->address && ip < f->address + f->ninsns) {
|
||||
*start = f->address;
|
||||
*end = f->address + f->ninsns;
|
||||
@@ -211,9 +211,9 @@ static void cur_func_bounds(spl_prog_t *prog, usize ip, usize *start, usize *end
|
||||
}
|
||||
|
||||
/* 格式化一条指令(不含行号前缀) */
|
||||
static void fmt_insn(const spl_ins_t *ins, char *buf, size_t n) {
|
||||
snprintf(buf, n, "%-11s %-5s %zu", spl_opcode_name(ins->opcode), spl_type_tag_name(ins->type),
|
||||
ins->imm);
|
||||
static void fmt_insn(const spl_vm_ins_t *ins, char *buf, size_t n) {
|
||||
snprintf(buf, n, "%-11s %-5s %zu", spl_vm_opcode_name(ins->opcode),
|
||||
spl_vm_type_kind_name(ins->type), ins->imm);
|
||||
}
|
||||
|
||||
static void dbg_show_location(dbg_t *d) {
|
||||
@@ -539,7 +539,7 @@ static int cmd_x(dbg_t *d, const char *args) {
|
||||
return 0;
|
||||
}
|
||||
unsigned char *sbase = (unsigned char *)d->vm->stacks.data;
|
||||
usize slen = d->vm->config.max_stack_depth * sizeof(spl_val_t);
|
||||
usize slen = d->vm->config.max_stack_depth * sizeof(spl_vm_val_t);
|
||||
printf(" addr=%#llx stack=[%p,+%zu) in=%d\n", addr, sbase, slen,
|
||||
addr >= (uintptr_t)sbase && addr < (uintptr_t)(sbase + slen));
|
||||
unsigned char *p = (unsigned char *)(uintptr_t)addr;
|
||||
@@ -567,7 +567,7 @@ static int cmd_p(dbg_t *d, const char *args) {
|
||||
printf(" no variable '%s' in %s\n", args, fn);
|
||||
return 0;
|
||||
}
|
||||
spl_val_t *addr = (spl_val_t *)((char *)&d->vm->stacks.data[d->vm->fp] + v->offset);
|
||||
spl_vm_val_t *addr = (spl_vm_val_t *)((char *)&d->vm->stacks.data[d->vm->fp] + v->offset);
|
||||
printf(" %s = %zu (0x%zx) @ fp+%zu\n", v->name, *addr, *addr, v->offset);
|
||||
d->last_ptr = (usize)*addr; /* 供 x 无参重读 */
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user