Skip to content

Commit da24294

Browse files
committed
UI: debug print stack
1 parent ddc4029 commit da24294

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/platform/sdl/runtime.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,20 @@ void signalTrace(SDL_bool debugBreak, SDL_bool debugError = SDL_FALSE) {
821821
SDL_UnlockMutex(g_lock);
822822
}
823823

824+
void dumpStack(socket_t socket) {
825+
for (int i = prog_stack_count - 1; i > -1; i--) {
826+
stknode_t node = prog_stack[i];
827+
switch (node.type) {
828+
case kwFUNC:
829+
net_print(socket, "FUNC\n");
830+
break;
831+
case kwPROC:
832+
net_print(socket, "SUB\n");
833+
break;
834+
}
835+
}
836+
}
837+
824838
int debugThread(void *data) {
825839
int port = ((intptr_t) data);
826840
socket_t socket = net_listen(port);
@@ -852,10 +866,15 @@ int debugThread(void *data) {
852866
break;
853867
case 'v':
854868
// variables
869+
net_print(socket, "Variables:\n");
855870
for (unsigned i = SYSVAR_COUNT; i < prog_varcount; i++) {
856-
pv_writevar(tvar[i], PV_NET, socket);
857-
net_print(socket, "\n");
871+
if (!v_isempty(tvar[i])) {
872+
pv_writevar(tvar[i], PV_NET, socket);
873+
net_print(socket, "\n");
874+
}
858875
}
876+
net_print(socket, "Stack:\n");
877+
dumpStack(socket);
859878
net_print(socket, "\1");
860879
break;
861880
case 'b':

0 commit comments

Comments
 (0)