[quickjs] More debugger work

- Helpers for frame position stuff
- Debug Frame manipulation
This commit is contained in:
John Doty 2023-09-22 22:11:47 -05:00
parent 6fa3e64b8d
commit de77e9e6b9
2 changed files with 100 additions and 39 deletions

View file

@ -1053,8 +1053,16 @@ void JS_SetSourceMapFunc(JSRuntime *rt, JSMapSourceFunc *map_func, void *opaque)
/* Debugger support */
typedef struct JSDebugContext JSDebugContext;
typedef struct JSDebugFrame JSDebugFrame;
JSContext *JS_DebugGetContext(JSDebugContext *ctx);
JSDebugFrame *JS_DebugGetFrame(JSDebugContext *ctx);
JSDebugFrame *JS_DebugGetPreviousFrame(JSDebugContext *ctx, JSDebugFrame *frame);
void JS_DebugGetFrameSourcePosition(JSDebugContext *ctx, JSDebugFrame *frame,
const char **function, const char **file,
int *line);
typedef enum JSResumeMode {
JS_RESUME_MODE_CONTINUE,
JS_RESUME_MODE_STEP_OVER,
@ -1068,8 +1076,12 @@ typedef enum JSBreakReason {
typedef struct JSBreakpoint JSBreakpoint;
typedef JSResumeMode JSDebugCallbackFunc(JSDebugContext *ctx, JSBreakReason reason, JSBreakpoint *breakpoint, void *opaque);
void JS_SetDebugCallbackFunc(JSRuntime *rt, JSDebugCallbackFunc *bp_func, void *opqaue);
typedef JSResumeMode JSDebugCallbackFunc(JSDebugContext *ctx,
JSBreakReason reason,
JSBreakpoint *breakpoint,
void *opaque);
void JS_SetDebugCallbackFunc(JSRuntime *rt, JSDebugCallbackFunc *bp_func,
void *opqaue);
JSBreakpoint *JS_SetBreakpoint(JSContext *ctx, JSAtom file, int line);
JSBreakpoint *JS_DupBreakpoint(JSBreakpoint *breakpoint);