Revision: 13227
Author:   [email protected]
Date:     Mon Dec 17 02:50:19 2012
Log:      Implement OS::DumpBacktrace() on FreeBSD.

Review URL: https://chromiumcodereview.appspot.com/11595004
Patch from Ben Noordhuis <[email protected]>.
http://code.google.com/p/v8/source/detail?r=13227

Modified:
 /branches/bleeding_edge/src/platform-freebsd.cc

=======================================
--- /branches/bleeding_edge/src/platform-freebsd.cc     Wed Dec 12 07:26:04 2012
+++ /branches/bleeding_edge/src/platform-freebsd.cc     Mon Dec 17 02:50:19 2012
@@ -196,6 +196,31 @@
   asm("int $3");
 #endif
 }
+
+
+void OS::DumpBacktrace() {
+  void* trace[100];
+  int size = backtrace(trace, ARRAY_SIZE(trace));
+  char** symbols = backtrace_symbols(trace, size);
+ fprintf(stderr, "\n==== C stack trace ===============================\n\n");
+  if (size == 0) {
+    fprintf(stderr, "(empty)\n");
+  } else if (symbols == NULL) {
+    fprintf(stderr, "(no symbols)\n");
+  } else {
+    for (int i = 1; i < size; ++i) {
+      fprintf(stderr, "%2d: ", i);
+      char mangled[201];
+ if (sscanf(symbols[i], "%*[^(]%*[(]%200[^)+]", mangled) == 1) { // NOLINT
+        fprintf(stderr, "%s\n", mangled);
+      } else {
+        fprintf(stderr, "??\n");
+      }
+    }
+  }
+  fflush(stderr);
+  free(symbols);
+}


 class PosixMemoryMappedFile : public OS::MemoryMappedFile {

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to