#include "xbt/ex.h"
#include "xbt/str.h"
#include "xbt/module.h" /* xbt_binary_name */
+#include "xbt_modinter.h" /* backtrace initialization headers */
#include "xbt/synchro.h" /* xbt_thread_self */
#include "gras/Virtu/virtu_interface.h" /* gras_os_myname */
# define HAVE_BACKTRACE 1 /* Hello linux box */
#endif
-#if defined(WIN32) && defined(_M_IX86)
+#if defined(WIN32) && defined(_M_IX86) && !defined(__GNUC__)
# define HAVE_BACKTRACE 1 /* Hello x86 windows box */
#endif
/* Change raw libc symbols to file names and line numbers */
void xbt_ex_setup_backtrace(xbt_ex_t *e);
-void xbt_backtrace_current(xbt_ex_t *e) {
-#ifdef HAVE_BACKTRACE
- xbt_ex_setup_backtrace(e);
-#endif
-}
-
void xbt_backtrace_display(xbt_ex_t *e) {
+ xbt_ex_setup_backtrace(e);
+
#ifdef HAVE_BACKTRACE
- int i;
-
if (e->used == 0) {
fprintf(stderr,"(backtrace not set)\n");
} else {
+ int i;
+
fprintf(stderr,"Backtrace (displayed in thread %p):\n",
(void*)xbt_thread_self());
for (i=1; i<e->used; i++) /* no need to display "xbt_display_backtrace" */
#if defined(HAVE_EXECINFO_H) && defined(HAVE_POPEN) && defined(ADDR2LINE)
# include "backtrace_linux.c"
-#elif (defined(WIN32) && defined (_M_IX86))
+#elif (defined(WIN32) && defined (_M_IX86)) && !defined(__GNUC__)
# include "backtrace_windows.c"
#else
-void xbt_ex_setup_backtrace(xbt_ex_t *e) {
-}
+# include "backtrace_dummy.c"
#endif
/** @brief shows an exception content and the associated stack if available */