version 1.6, 2025/04/30 14:41:03
|
version 1.7, 2025/04/30 17:19:16
|
Line 24
|
Line 24
|
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* |
* |
* $Log$ |
* $Log$ |
|
* Revision 1.7 2025/04/30 17:19:16 snw |
|
* Improve backtraces in debugger |
|
* |
* Revision 1.6 2025/04/30 14:41:03 snw |
* Revision 1.6 2025/04/30 14:41:03 snw |
* Further debugger work |
* Further debugger work |
* |
* |
Line 166 int debugger (int entry_mode, char *curc
|
Line 169 int debugger (int entry_mode, char *curc
|
|
|
while (1) { |
while (1) { |
|
|
//stcpy (rouname_buf, rou_name); |
if (nstx == 0) { |
getraddress (rouname_buf, nstx); |
stcpy (rouname_buf, rou_name); |
|
} |
|
else { |
|
char tbuf[256]; |
|
|
|
getraddress (tbuf, nstx); |
|
stcpy (rouname_buf, &(tbuf[3])); |
|
} |
stcnv_m2c (rouname_buf); |
stcnv_m2c (rouname_buf); |
|
|
snprintf (dbg_prompt, sizeof (dbg_prompt) - 1, "%s $STACK=%d [DEBUG]> ", rouname_buf, nstx); |
snprintf (dbg_prompt, sizeof (dbg_prompt) - 1, "%s $STACK=%d [DEBUG]> ", rouname_buf, nstx); |
Line 207 int debugger (int entry_mode, char *curc
|
Line 217 int debugger (int entry_mode, char *curc
|
} |
} |
else if ((strcmp (dbg_cmd, "backtrace") == 0) || (strcmp (dbg_cmd, "bt") == 0)) { |
else if ((strcmp (dbg_cmd, "backtrace") == 0) || (strcmp (dbg_cmd, "bt") == 0)) { |
char tmpbuf[256]; |
char tmpbuf[256]; |
|
char ecbuf[256]; |
printf ("%-10s%s\n", "$STACK", "(CMND)ENTRY"); |
char lref[256]; |
printf ("%-10s%s\n", "======", "==========="); |
char bt_mcode[256]; |
|
|
|
printf ("%-10s%s\n", "$STACK", "ENTRY"); |
|
printf ("%-10s%s\n", "======", "====="); |
|
|
|
|
for (i = 1; i <= nstx; i++) getraddress (callerr[i], i); |
for (i = 1; i <= nstx; i++) getraddress (callerr[i], i); |
for (i = nstx; i > 0; i--) { |
for (i = nstx; i > 0; i--) { |
|
|
stcpy (tmpbuf, callerr[i]); |
stcpy (tmpbuf, callerr[i]); |
stcnv_m2c (tmpbuf); |
stcnv_m2c (tmpbuf); |
printf ("%-10d%s\n", i, tmpbuf); |
|
|
printf ("%-10d%s\n", i, &(tmpbuf[3])); |
|
stcpy (lref, &(tmpbuf[3])); |
|
stcnv_m2c (lref); |
|
if (m_text (lref, bt_mcode) != NULL) { |
|
stcnv_m2c (bt_mcode); |
|
printf ("\t%s\n", bt_mcode); |
|
} |
} |
} |
} |
} |
else { |
else { |