# New Ticket Created by NotFound # Please include the string: [perl #56346] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56346 >
Some debug opcodes assumes that the debugger is already inited or that a file to debug is loaded, and segfaults otherwise. This patch add some checks and throws on bad usages. -- Salu2
Index: src/ops/debug.ops =================================================================== --- src/ops/debug.ops (revisión: 28694) +++ src/ops/debug.ops (copia de trabajo) @@ -66,6 +66,9 @@ op debug_load(inconst STR) :base_debug { char *f; + if (!(interp->pdb)) { + real_exception(interp, NULL, 0, "No Debugger"); + } if (!(interp->pdb->state & PDB_BREAK)) { f = string_to_cstring(interp, ($1)); PDB_load_source(interp, f); @@ -92,6 +95,12 @@ op debug_break() :base_debug { const char *command; + if (!(interp->pdb)) { + real_exception(interp, NULL, 0, "No Debugger"); + } + if (!(interp->pdb->file)) { + real_exception(interp, NULL, 0, "No file loaded to debug"); + } if (!(interp->pdb->state & PDB_BREAK)) { interp->pdb->state |= PDB_BREAK; interp->pdb->state |= PDB_STOPPED;