projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xenserver: Split kernel/userspace into separate RPMs for supplemental packs.
[openvswitch]
/
lib
/
backtrace.c
diff --git
a/lib/backtrace.c
b/lib/backtrace.c
index 2f47809326ddc9d380e558feb5c5625d31ffdaf8..91549db347812b516e2eb4fb27b93c54349deb62 100644
(file)
--- a/
lib/backtrace.c
+++ b/
lib/backtrace.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009
, 2010
Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-21,11
+21,11
@@
#include <stdbool.h>
#include <stdio.h>
#include "compiler.h"
#include <stdbool.h>
#include <stdio.h>
#include "compiler.h"
-
-#define THIS_MODULE VLM_backtrace
#include "vlog.h"
#include "vlog.h"
-static uintptr_t UNUSED
+VLOG_DEFINE_THIS_MODULE(backtrace);
+
+static uintptr_t OVS_UNUSED
get_max_stack(void)
{
static const char file_name[] = "/proc/self/maps";
get_max_stack(void)
{
static const char file_name[] = "/proc/self/maps";
@@
-69,20
+69,8
@@
stack_high(void)
static uintptr_t
stack_low(void)
{
static uintptr_t
stack_low(void)
{
-#ifdef __i386__
- uintptr_t low;
- asm("movl %%esp,%0" : "=g" (low));
+ uintptr_t low = (uintptr_t) &low;
return low;
return low;
-#elif __x86_64__
- uintptr_t low;
- asm("movq %%rsp,%0" : "=g" (low));
- return low;
-#else
- /* This causes a warning in GCC that cannot be disabled, so use it only on
- * non-x86. */
- int dummy;
- return (uintptr_t) &dummy;
-#endif
}
static bool
}
static bool
@@
-95,6
+83,7
@@
in_stack(void *p)
void
backtrace_capture(struct backtrace *backtrace)
{
void
backtrace_capture(struct backtrace *backtrace)
{
+#ifdef __GNUC__
void **frame;
size_t n;
void **frame;
size_t n;
@@
-107,4
+96,7
@@
backtrace_capture(struct backtrace *backtrace)
backtrace->frames[n++] = (uintptr_t) frame[1];
}
backtrace->n_frames = n;
backtrace->frames[n++] = (uintptr_t) frame[1];
}
backtrace->n_frames = n;
+#else
+ backtrace->n_frames = 0;
+#endif
}
}