diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-01-28 22:03:56 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-01-28 22:03:56 -0800 |
commit | 4815f528c228711623a9bcf3dd9626c044a16f45 (patch) | |
tree | 7ee518759f4770166ee0e69256319442243057a1 /vm.c | |
parent | abc74473ed37336a924b135e656ba40eeecc064b (diff) | |
download | txr-4815f528c228711623a9bcf3dd9626c044a16f45.tar.gz txr-4815f528c228711623a9bcf3dd9626c044a16f45.tar.bz2 txr-4815f528c228711623a9bcf3dd9626c044a16f45.zip |
vm: more info in frame level mismatch.
* vm.c (do_frame): In frame level mismatch diagnostic,
identify vm descriptor, instruction offset and the expected
and actual level.
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -415,7 +415,9 @@ static void vm_do_frame(struct vm *vm, vm_word_t insn, int capturable) int size = vm_insn_operand(insn); if (lev != vm->lev + 1) - uw_throwf(error_s, lit("frame level mismatch"), nao); + uw_throwf(error_s, + lit("~s: frame level mismatch at ~s: right ~s, actual ~s"), + vm->vd->self, unum(vm->ip), num(vm->lev + 1), num(lev), nao); vm->lev = lev; vm->dspl[lev].mem = coerce(val *, zalloca(size * sizeof (val *))); |