support 'p' commond for pika-debuger

This commit is contained in:
lyon 2022-01-29 00:53:57 +08:00
parent 89072c3f22
commit 50b097e786
3 changed files with 26 additions and 0 deletions

View File

@ -3,3 +3,4 @@ from PikaObj import *
class Debuger(TinyObj):
def set_trace():
pass

View File

@ -1,4 +1,6 @@
#include "PikaDebug_Debuger.h"
#include "PikaVM.h"
#include "dataStrs.h"
extern PikaObj* __pikaMain;
static enum shell_state __obj_shellLineHandler_debuger(PikaObj* self,
@ -8,11 +10,22 @@ static enum shell_state __obj_shellLineHandler_debuger(PikaObj* self,
/* exit pika shell */
return SHELL_STATE_EXIT;
}
/* launch shell */
if (strEqu("sh", input_line)) {
/* exit pika shell */
pikaScriptShell(__pikaMain);
return SHELL_STATE_CONTINUE;
}
/* print */
if (strIsStartWith(input_line, "p ")) {
char* path = input_line + 2;
Arg* asm_buff = arg_setStr(NULL, "", "B0\n1 REF ");
asm_buff = arg_strAppend(asm_buff, path);
asm_buff = arg_strAppend(asm_buff, "\n0 RUN print\n");
pikaVM_runAsm(__pikaMain, arg_getStr(asm_buff));
arg_deinit(asm_buff);
}
return SHELL_STATE_CONTINUE;
}
void PikaDebug_Debuger_set_trace(PikaObj* self) {

View File

@ -1,4 +1,6 @@
#include "PikaDebug_Debuger.h"
#include "PikaVM.h"
#include "dataStrs.h"
extern PikaObj* __pikaMain;
static enum shell_state __obj_shellLineHandler_debuger(PikaObj* self,
@ -8,11 +10,21 @@ static enum shell_state __obj_shellLineHandler_debuger(PikaObj* self,
/* exit pika shell */
return SHELL_STATE_EXIT;
}
/* launch shell */
if (strEqu("sh", input_line)) {
/* exit pika shell */
pikaScriptShell(__pikaMain);
return SHELL_STATE_CONTINUE;
}
/* print */
if (strIsStartWith(input_line, "p ")) {
char* path = input_line + 2;
Arg* asm_buff = arg_setStr(NULL, "", "B0\n1 REF ");
asm_buff = arg_strAppend(asm_buff, path);
asm_buff = arg_strAppend(asm_buff, "\n0 RUN print\n");
pikaVM_runAsm(__pikaMain, arg_getStr(asm_buff));
arg_deinit(asm_buff);
}
return SHELL_STATE_CONTINUE;
}