[perl #43425] local $[: fix scoping during parser error handling.
[p5sagit/p5-mst-13.2.git] / deb.c
diff --git a/deb.c b/deb.c
index 3907201..37d7a7c 100644 (file)
--- a/deb.c
+++ b/deb.c
@@ -57,10 +57,15 @@ Perl_vdeb(pTHX_ const char *pat, va_list *args)
 {
 #ifdef DEBUGGING
     dVAR;
-    const char* const file = OutCopFILE(PL_curcop);
-
-    PerlIO_printf(Perl_debug_log, "(%s:%ld)\t", (file ? file : "<free>"),
-                 (long)CopLINE(PL_curcop));
+    const char* const file = PL_curcop ? OutCopFILE(PL_curcop) : "<null>";
+    const char* const display_file = file ? file : "<free>";
+    const long line = PL_curcop ? (long)CopLINE(PL_curcop) : 0;
+
+    if (DEBUG_v_TEST)
+       PerlIO_printf(Perl_debug_log, "(%ld:%s:%ld)\t",
+                     (long)PerlProc_getpid(), display_file, line);
+    else
+       PerlIO_printf(Perl_debug_log, "(%s:%ld)\t", display_file, line);
     (void) PerlIO_vprintf(Perl_debug_log, pat, *args);
 #else
     PERL_UNUSED_CONTEXT;
@@ -203,8 +208,8 @@ Perl_deb_stack_all(pTHX)
     si_ix=0;
     for (;;)
     {
-        const int si_name_ix = si->si_type+1; /* -1 is a valid index */
-        const char * const si_name = (si_name_ix>= sizeof(si_names)) ? "????" : si_names[si_name_ix];
+        const size_t si_name_ix = si->si_type+1; /* -1 is a valid index */
+        const char * const si_name = (si_name_ix >= sizeof(si_names)) ? "????" : si_names[si_name_ix];
        I32 ix;
        PerlIO_printf(Perl_debug_log, "STACK %"IVdf": %s\n",
                                                (IV)si_ix, si_name);