[前][次][番号順一覧][スレッド一覧]

ruby-changes:8627

From: nobu <ko1@a...>
Date: Sun, 9 Nov 2008 04:11:00 +0900 (JST)
Subject: [ruby-changes:8627] Ruby:r20162 (trunk): * vm_dump.c (control_frame_dump): suppresses finished method name.

nobu	2008-11-09 04:10:36 +0900 (Sun, 09 Nov 2008)

  New Revision: 20162

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20162

  Log:
    * vm_dump.c (control_frame_dump): suppresses finished method name.

  Modified files:
    trunk/ChangeLog
    trunk/vm_dump.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20161)
+++ ChangeLog	(revision 20162)
@@ -1,3 +1,7 @@
+Sun Nov  9 04:10:19 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* vm_dump.c (control_frame_dump): suppresses finished method name.
+
 Sun Nov  9 00:30:52 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* thread_pthread.c (thread_timer): checks working flags again.
Index: vm_dump.c
===================================================================
--- vm_dump.c	(revision 20161)
+++ vm_dump.c	(revision 20162)
@@ -25,6 +25,7 @@
     ptrdiff_t dfp = cfp->dfp - th->stack;
     char lfp_in_heap = ' ', dfp_in_heap = ' ';
     char posbuf[MAX_POSBUF+1];
+    int nopos = 0;
 
     const char *magic, *iseq_name = "-", *selfstr = "-", *biseq_name = "-";
     VALUE tmp;
@@ -60,6 +61,7 @@
 	break;
       case VM_FRAME_MAGIC_FINISH:
 	magic = "FINISH";
+	nopos = 1;
 	break;
       case VM_FRAME_MAGIC_CFUNC:
 	magic = "CFUNC";
@@ -92,7 +94,10 @@
 	selfstr = "";
     }
 
-    if (cfp->iseq != 0) {
+    if (nopos) {
+	/* no name */
+    }
+    else if (cfp->iseq != 0) {
 	if (RUBY_VM_IFUNC_P(cfp->iseq)) {
 	    iseq_name = "<ifunc>";
 	}
@@ -103,9 +108,7 @@
 	    iseq_name = RSTRING_PTR(cfp->iseq->name);
 	    line = vm_get_sourceline(cfp);
 	    if (line) {
-		char fn[MAX_POSBUF+1];
-		snprintf(fn, MAX_POSBUF, "%s", RSTRING_PTR(cfp->iseq->filename));
-		snprintf(posbuf, MAX_POSBUF, "%s:%d", fn, line);
+		snprintf(posbuf, MAX_POSBUF, "%s:%d", RSTRING_PTR(cfp->iseq->filename), line);
 	    }
 	}
     }
@@ -126,12 +129,12 @@
     fprintf(stderr, "s:%04"PRIdPTRDIFF" b:%04d ", (cfp->sp - th->stack), bp);
     fprintf(stderr, lfp_in_heap == ' ' ? "l:%06"PRIdPTRDIFF" " : "l:%06"PRIxPTRDIFF" ", lfp % 10000);
     fprintf(stderr, dfp_in_heap == ' ' ? "d:%06"PRIdPTRDIFF" " : "d:%06"PRIxPTRDIFF" ", dfp % 10000);
-    fprintf(stderr, "%-6s ", magic);
-    if (line) {
-	fprintf(stderr, "%s", posbuf);
+    fprintf(stderr, "%-6s", magic);
+    if (line && !nopos) {
+	fprintf(stderr, " %s", posbuf);
     }
     if (0) {
-	fprintf(stderr, "             \t");
+	fprintf(stderr, "              \t");
 	fprintf(stderr, "iseq: %-24s ", iseq_name);
 	fprintf(stderr, "self: %-24s ", selfstr);
 	fprintf(stderr, "%-1s ", biseq_name);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]