| 399 | |
| 400 | #if defined(mxInstrument) && !defined(mxDebug) |
| 401 | static void fxTraceException(txMachine *the) |
| 402 | { |
| 403 | #ifndef mxNoConsole |
| 404 | if (XS_REFERENCE_KIND == mxException.kind) { |
| 405 | txSlot* internal = mxException.value.reference->next; |
| 406 | if (internal && (internal->kind == XS_ERROR_KIND)) { |
| 407 | txSlot* msg = internal->next; |
| 408 | if (msg && ((msg->kind == XS_STRING_KIND) || (msg->kind == XS_STRING_X_KIND))) |
| 409 | c_printf("Exception %s: %s\n", gxErrorNames[internal->value.error.which], msg->value.string); |
| 410 | else |
| 411 | c_printf("Exception %s\n", gxErrorNames[internal->value.error.which]); |
| 412 | } |
| 413 | } |
| 414 | else |
| 415 | c_printf("Exception\n"); |
| 416 | #endif |
| 417 | } |
| 418 | #endif |
| 419 | |
| 420 | void fxRunID(txMachine* the, txSlot* generator, txInteger count) |