Opened 7 years ago
Last modified 7 years ago
#11420 new Bugs
program_options crash on run() on specific machine only in release mode
Reported by: | Owned by: | Vladimir Prus | |
---|---|---|---|
Milestone: | To Be Determined | Component: | program_options |
Version: | Boost 1.58.0 | Severity: | Problem |
Keywords: | Cc: |
Description
It's a very strange error that occured. I have deployed the program on a machine where no Visual Studio is available.
Upon start it crashes instantly so I have created a dump with the task manager and analysed it in Visual Studio 2013.
> test.exe!boost::program_options::basic_command_line_parser<char>::run() Line 107 C++
which resolves to
template<class charT> basic_parsed_options<charT> basic_command_line_parser<charT>::run() { // save the canonical prefixes which were used by this cmdline parser // eventually inside the parsed results // This will be handy to format recognisable options // for diagnostic messages if everything blows up much later on parsed_options result(m_desc, detail::cmdline::get_canonical_option_prefix()); result.options = detail::cmdline::run(); // Presense of parsed_options -> wparsed_options conversion // does the trick. return basic_parsed_options<charT>(result); }
in my program the crash occurs in the following line
po::store(po::command_line_parser(argc, argv).options(description).allow_unregistered().run(), vm);
The very strange thing is that argc is 0 and argv is 0x0000000000000000
It only happens in release mode and i cannot catch any exception
Change History (2)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
i have even removed the -gd libs from the stage folder, so there should be no mismatch...
Note:
See TracTickets
for help on using tickets.
Could it be that you're linking to debug version of the library? Windows is picky about much mismatches. Or your build is not 100% clean. Other than that, it's hard to guess that could be wrong.