Added stack trace help
This commit is contained in:
parent
1d0b7974fc
commit
be5de49829
1 changed files with 9 additions and 0 deletions
|
|
@ -6848,11 +6848,19 @@ if (DEBUGGER) {
|
||||||
*/
|
*/
|
||||||
Debugger.prototype.doStackTrace = function(sCmd, sAddr)
|
Debugger.prototype.doStackTrace = function(sCmd, sAddr)
|
||||||
{
|
{
|
||||||
|
if (sAddr == '?') {
|
||||||
|
this.println("stack trace commands:");
|
||||||
|
this.println("\tk\tshow frame addresses");
|
||||||
|
this.println("\tks\tshow symbol information");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var nFrames = 10, cFrames = 0;
|
var nFrames = 10, cFrames = 0;
|
||||||
var selCode = this.cpu.segCS.sel;
|
var selCode = this.cpu.segCS.sel;
|
||||||
var dbgAddrCall = this.newAddr();
|
var dbgAddrCall = this.newAddr();
|
||||||
var dbgAddrStack = this.newAddr(this.cpu.getSP(), this.cpu.getSS());
|
var dbgAddrStack = this.newAddr(this.cpu.getSP(), this.cpu.getSS());
|
||||||
this.println("stack trace for " + this.hexAddr(dbgAddrStack));
|
this.println("stack trace for " + this.hexAddr(dbgAddrStack));
|
||||||
|
|
||||||
while (cFrames < nFrames) {
|
while (cFrames < nFrames) {
|
||||||
var sCall = null, cTests = 256;
|
var sCall = null, cTests = 256;
|
||||||
while ((dbgAddrStack.off >>> 0) < (this.cpu.regLSPLimit >>> 0)) {
|
while ((dbgAddrStack.off >>> 0) < (this.cpu.regLSPLimit >>> 0)) {
|
||||||
|
|
@ -7204,6 +7212,7 @@ if (DEBUGGER) {
|
||||||
this.doInput(asArgs[1]);
|
this.doInput(asArgs[1]);
|
||||||
break;
|
break;
|
||||||
case 'k':
|
case 'k':
|
||||||
|
this.shiftArgs(asArgs);
|
||||||
this.doStackTrace(asArgs[0], asArgs[1]);
|
this.doStackTrace(asArgs[0], asArgs[1]);
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue