python: fix error reporting, make it much more verbose
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Mon, 28 Dec 2009 17:53:52 +0000
changeset 5878 34459001e1ba
parent 5877 24dd3b1a0bb6
child 5879 12a17646ad8e
python: fix error reporting, make it much more verbose
bindings/python/ns3modulegen.py
--- a/bindings/python/ns3modulegen.py	Mon Dec 28 16:17:49 2009 +0000
+++ b/bindings/python/ns3modulegen.py	Mon Dec 28 17:53:52 2009 +0000
@@ -17,11 +17,17 @@
 from ns3modulegen_generated import module_init, register_types, register_methods, register_functions
 import ns3modulegen_core_customizations
 import callbacks_list
+import traceback
 
 this_script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
 
 class ErrorHandler(pybindgen.settings.ErrorHandler):
     def handle_error(self, wrapper, exception, traceback_):
+        print >> sys.stderr
+        print >> sys.stderr, "---- location:"
+        traceback.print_stack()
+        print >> sys.stderr, "---- error:"
+        traceback.print_tb(traceback_)
         try:
             stack = wrapper.stack_where_defined
         except AttributeError:
@@ -31,7 +37,7 @@
             stack.reverse()
             for (filename, line_number, function_name, text) in stack:
                 file_dir = os.path.dirname(os.path.abspath(filename))
-                if file_dir == this_script_dir:
+                if file_dir.startswith(this_script_dir):
                     print >> sys.stderr, "%s:%i: %r" % (os.path.join("..", "bindings", "python", os.path.basename(filename)),
                                                         line_number, exception)
                     break