sim: don't ignore SIG_TRAP
By ignoring SIG_TRAP, using --debug-break <N> when not connected to a debugger becomes a no-op. Apparently this was intended to be a feature, though the rationale is not clear. If we don't ignore SIG_TRAP, then using --debug-break <N> when not connected to a debugger causes the simulation process to terminate at tick N. This is occasionally useful, e.g., if you just want to collect a trace for a specific window of execution then you can combine this with --debug-start to do exactly that. In addition to not ignoring the signal, this patch also updates the --debug-break help message and deletes a handful of unprotected calls to Debug::breakpoint() that relied on the prior behavior.
This commit is contained in:
@@ -951,7 +951,6 @@ NSGigE::cpuIntrPost(Tick when)
|
||||
|
||||
intrTick = when;
|
||||
if (intrTick < curTick()) {
|
||||
Debug::breakpoint();
|
||||
intrTick = curTick();
|
||||
}
|
||||
|
||||
@@ -1725,7 +1724,6 @@ NSGigE::txKick()
|
||||
tcp->sum(cksum(tcp));
|
||||
txTcpChecksums++;
|
||||
} else {
|
||||
Debug::breakpoint();
|
||||
warn_once("TCPPKT set, but not UDP!\n");
|
||||
}
|
||||
}
|
||||
@@ -1735,7 +1733,6 @@ NSGigE::txKick()
|
||||
ip->sum(cksum(ip));
|
||||
txIpChecksums++;
|
||||
} else {
|
||||
Debug::breakpoint();
|
||||
warn_once("IPPKT set, but not UDP!\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -527,7 +527,6 @@ Base::cpuIntrPost(Tick when)
|
||||
|
||||
intrTick = when;
|
||||
if (intrTick < curTick()) {
|
||||
Debug::breakpoint();
|
||||
intrTick = curTick();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user