diff options
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 22c41920cc7..a99860bd8cd 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -272,6 +272,13 @@ mark_byte_stack () | |||
| 272 | 272 | ||
| 273 | for (stack = byte_stack_list; stack; stack = stack->next) | 273 | for (stack = byte_stack_list; stack; stack = stack->next) |
| 274 | { | 274 | { |
| 275 | /* If STACK->top is null here, this means there's an opcode in | ||
| 276 | Fbyte_code that wasn't expected to GC, but did. To find out | ||
| 277 | which opcode this is, record the value of `stack', and walk | ||
| 278 | up the stack in a debugger, stopping in frames of Fbyte_code. | ||
| 279 | The culprit is found in the frame of Fbyte_code where the | ||
| 280 | address of its local variable `stack' is equal to the | ||
| 281 | recorded value of `stack' here. */ | ||
| 275 | if (!stack->top) | 282 | if (!stack->top) |
| 276 | abort (); | 283 | abort (); |
| 277 | 284 | ||