diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-05-09 16:21:41 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-09 10:21:41 +0200 |
| commit | 22fdc90fe28171e3e7566684f60305a4f2d04dcf (patch) | |
| tree | 8e0c1ded237fa62b6cf9dd56455a9338d5db5fd0 /src/tools/gdbjit.c | |
| parent | 78193c5f1acb4fd0311bbf96ed0f692016d6e350 (diff) | |
| download | box64-22fdc90fe28171e3e7566684f60305a4f2d04dcf.tar.gz box64-22fdc90fe28171e3e7566684f60305a4f2d04dcf.zip | |
[GDBJIT] Added a new option to register debuginfo only after trapped into signalhandler (#2614)
Diffstat (limited to 'src/tools/gdbjit.c')
| -rw-r--r-- | src/tools/gdbjit.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/tools/gdbjit.c b/src/tools/gdbjit.c index 5813f562..f1a3b0ce 100644 --- a/src/tools/gdbjit.c +++ b/src/tools/gdbjit.c @@ -98,22 +98,21 @@ gdbjit_block_t* GdbJITBlockAddLine(gdbjit_block_t* block, GDB_CORE_ADDR addr, co return block; } +void GdbJITBlockCleanup(gdbjit_block_t* block) { + if (block && block->file) { + fclose(block->file); + block->file = NULL; + } +} + void GdbJITBlockReady(gdbjit_block_t* block) { if (!block) return; - if (block->nlines == 0) { - fclose(block->file); - return; - } + if (block->nlines == 0) return; gdbjit_code_entry_t* entry = (gdbjit_code_entry_t*)box_malloc(sizeof(gdbjit_code_entry_t)); - if (!entry) { - fclose(block->file); - return; - } - - fclose(block->file); + if (!entry) return; entry->symfile_addr = (const char*)block; entry->symfile_size = sizeof(gdbjit_block_t) + block->nlines * sizeof(struct gdb_line_mapping); |