mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
Add new abort-on-exceptions flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1737 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6723addbc7
commit
74030254b5
@ -27,6 +27,7 @@ using std::cerr;
|
||||
cl::Flag QuietMode ("quiet" , "Do not emit any non-program output");
|
||||
cl::Alias QuietModeA("q" , "Alias for -quiet", cl::NoFlags, QuietMode);
|
||||
cl::Flag ArrayChecksEnabled("array-checks", "Enable array bound checks");
|
||||
cl::Flag AbortOnExceptions("abort-on-exception", "Halt execution on a machine exception");
|
||||
|
||||
// Create a TargetData structure to handle memory addressing and size/alignment
|
||||
// computations
|
||||
@ -803,7 +804,7 @@ static PointerTy getElementOffset(MemAccessInst *I, ExecutionContext &SF) {
|
||||
<< " Subscript #" << (ArgOff-I->getFirstIndexOperandNumber())
|
||||
<< "\n";
|
||||
// Get outta here!!!
|
||||
siglongjmp(SignalRecoverBuffer, -1);
|
||||
siglongjmp(SignalRecoverBuffer, SIGTRAP);
|
||||
}
|
||||
|
||||
Ty = ST->getElementType();
|
||||
@ -1134,9 +1135,13 @@ bool Interpreter::executeInstruction() {
|
||||
//
|
||||
if (int SigNo = sigsetjmp(SignalRecoverBuffer, 1)) {
|
||||
--SF.CurInst; // Back up to erroring instruction
|
||||
if (SigNo != SIGINT && SigNo != -1) {
|
||||
if (SigNo != SIGINT) {
|
||||
cout << "EXCEPTION OCCURRED [" << _sys_siglistp[SigNo] << "]:\n";
|
||||
printStackTrace();
|
||||
// If -abort-on-exception was specified, terminate LLI instead of trying
|
||||
// to debug it.
|
||||
//
|
||||
if (AbortOnExceptions) exit(1);
|
||||
} else if (SigNo == SIGINT) {
|
||||
cout << "CTRL-C Detected, execution halted.\n";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user