This would be useful,
the problem would be that the when the assertion fails, and provided that the reporting comes from within that function, the code (currently in exception.hpp):


std::cerr << "Check failed in file " << __FILE__ << " at line " << __LINE__ << ":" << std::endl;


would always show the file this function is in and not from where it is called. i.e. it would be always reporting something like:


Check failed in file boost/numeric/ublas/exception.hpp at line xxx: .........

 

Maybe an ublas_raise function that accepts __FILE__ and __LINE__ would work.

Furthermore, using a function call may make the debug mode in ublas much much faster (because inlining the std::cerr io may be avoided), so an investigation of that matter becomes very interesting.

Another matter is that this function should either: be inlined, be a member function of a class, be a template class, otherwise the exception.hpp would not link between two referencing compilation units.
 
Best
Nasos


> To: ublas@lists.boost.org
> From: ndbecker2@gmail.com
> Date: Tue, 15 Jun 2010 21:16:39 -0400
> Subject: [ublas] improved debug support
>
> It's helpful that indexes are checked in debug mode. Unfortunately, I find
> it impossible to get gdb to set a breakpoint on the exception being raised,
> probably due to the use of a macro for BOOST_UBLAS_CHECK.
>
> Perhaps if a function was called to raise the exception, say
>
> boost_raise (exception e) ...
>
> Then it would be easier to put a breakpoint on this function.
>
> _______________________________________________
> ublas mailing list
> ublas@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: nasos_i@hotmail.com


The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail. Get busy.