Reviewers: Michael Starzinger,
Description:
Implement OS::DumpBacktrace() on FreeBSD.
Please review this at https://codereview.chromium.org/11595004/
Affected files:
M src/platform-freebsd.cc
Index: src/platform-freebsd.cc
diff --git a/src/platform-freebsd.cc b/src/platform-freebsd.cc
index
cebdd1ed57f43f270727751685a75b4b9b1a0bb1..62653b4ca7f73d562c17cc2241163ea2775e9512
100644
--- a/src/platform-freebsd.cc
+++ b/src/platform-freebsd.cc
@@ -198,6 +198,31 @@ void OS::DebugBreak() {
}
+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 {
public:
PosixMemoryMappedFile(FILE* file, void* memory, int size)
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev