-/*
-** OSSP ex - Exception Handling (modified to fit into SimGrid)
-** Copyright (c) 2005 Martin Quinson
-** Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com>
-** Copyright (c) 2002-2004 The OSSP Project <http://www.ossp.org/>
-** Copyright (c) 2002-2004 Cable & Wireless <http://www.cw.com/>
-**
-** This file is part of OSSP ex, an exception handling library
-** which can be found at http://www.ossp.org/pkg/lib/ex/.
-**
-** Permission to use, copy, modify, and distribute this software for
-** any purpose with or without fee is hereby granted, provided that
-** the above copyright notice and this permission notice appear in all
-** copies.
-**
-** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-** SUCH DAMAGE.
-**
-** ex.c: exception handling (compiler part)
-*/
+/* $Id$ */
+
+/* ex - Exception Handling (modified to fit into SimGrid from OSSP version) */
+
+/* Copyright (c) 2005-2006 Martin Quinson */
+/* Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com> */
+/* Copyright (c) 2002-2004 The OSSP Project <http://www.ossp.org/> */
+/* Copyright (c) 2002-2004 Cable & Wireless <http://www.cw.com/> */
+/* All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
#include <stdio.h>
#include <stdlib.h>
line_pos[strlen(line_pos)-1]='\0';
if (strcmp("??",line_func)) {
- e->bt_strings[i] = bprintf("** At %s: %s (%s)",
- addrs[i], line_func,line_pos);
+ e->bt_strings[i] = bprintf("** In %s() at %s (static symbol)", line_func,line_pos);
} else {
/* Damn. The symbol is in a dynamic library. Let's get wild */
char *maps_name;
FILE *maps;
char maps_buff[512];
- long int addr,offset;
+ long int addr,offset=0;
char *p,*p2;
char *subcmd;
/* check whether the trick worked */
if (strcmp("??",line_func)) {
- e->bt_strings[i] = bprintf("** At %s: %s (%s)",
- addrs[i], line_func,line_pos);
+ e->bt_strings[i] = bprintf("** In %s() at %s (dynamic symbol)", line_func,line_pos);
} else {
/* damn, nothing to do here. Let's print the raw address */
- e->bt_strings[i] = bprintf("** At %s: ?? (%s)",
- addrs[i], backtrace[i]);
+ e->bt_strings[i] = bprintf("** In ?? (%s)", backtrace[i]);
}
}
free(addrs[i]);