Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2004-10-29 04:40:33


> I've been trying to implement some routines using the Boost library,
> primarily with the excellent RegEx library. Everything was working well
> enough in small tests, but when I tried running the routines on many
> patterns, my program would crash (it performs various pattern matching and
> search-and-replaces in multiple text files). I was able to determine that
> the crashes came on the calls to regex-related functions (though it tended
> to be a little unpredictable as to when, depending on the set of files I
> gave it).
>
> I tried changing my project settings (I use VC6, btw) to link with "debug"
> libraries instead of the standard ones (eg. "Debug Multithreaded"), and
> ran the program again, and everything worked perfectly.
>
> Unfortunately... I don't want to have my program running with all-debug
> libraries for performance and size reasons. However, is it possible to
> have my link-settings set to use standard libraries as before, but for the
> stuff that uses the regex library, to use a debug ".lib" file? Or... in
> the 'bjam' process, is it possible to say something to the effect of "when
> compiling the regex libraries, turn off compiler optimizations", so I can
> get a standard library that should work...?

I think you really need to track down the cause of the problem before
blaming it on regex or the compiler.

Some possible options:

You're passing a temporary to one of the regex functions and getting
out-of-date invalidated iterators back.
You're using some data that's uninitialised (zero initialised in bebug mode,
but garbage in release mode).

Also don't forget that you can put debug information in an otherwise release
build, and then debug it.

You can also add the regex source directly to your project (but define
BOOST_REGEX_NO_LIB project-wide to suppress auto-linking), and control
options from there if it comes to it.

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net