add bool reset to settrace

This commit is contained in:
blueloveTH 2025-05-26 20:01:01 +08:00
parent 0ec84bca99
commit 6708c85f57
3 changed files with 4 additions and 3 deletions

View File

@ -107,7 +107,7 @@ PK_API void py_setvmctx(void* ctx);
/// Set `sys.argv`. Used for storing command-line arguments.
PK_API void py_sys_setargv(int argc, char** argv);
/// Set the trace function for the current VM.
PK_API void py_sys_settrace(py_TraceFunc func);
PK_API void py_sys_settrace(py_TraceFunc func, bool reset);
/// Setup the callbacks for the current VM.
PK_API py_Callbacks* py_callbacks();

View File

@ -1454,9 +1454,10 @@ static bool stack_format_object(VM* self, c11_sv spec) {
#undef INSERT_THIRD
#undef vectorcall_opcall
void py_sys_settrace(py_TraceFunc func) {
void py_sys_settrace(py_TraceFunc func, bool reset) {
TraceInfo* info = &pk_current_vm->trace_info;
info->func = func;
if(!reset) return;
if(info->prev_loc.src) {
PK_DECREF(info->prev_loc.src);
info->prev_loc.src = NULL;

View File

@ -95,7 +95,7 @@ int main(int argc, char** argv) {
py_initialize();
py_sys_setargv(argc, argv);
if(trace) py_sys_settrace(tracefunc);
if(trace) py_sys_settrace(tracefunc, true);
if(filename == NULL) {
printf("pocketpy " PK_VERSION " (" __DATE__ ", " __TIME__ ") ");