[MacPorts] #29394: in boost 1.46.1 program_options lib is unusable in macports

MacPorts noreply at macports.org
Sun May 8 04:34:33 PDT 2011


#29394: in boost 1.46.1  program_options lib is unusable in macports
--------------------------------------------------+-------------------------
 Reporter:  christophe.prudhomme@…                |       Owner:  macports-tickets@…                   
     Type:  defect                                |      Status:  new                                  
 Priority:  Normal                                |   Milestone:                                       
Component:  ports                                 |     Version:  1.9.2                                
 Keywords:  boost1.46 program_options             |        Port:  boost                                
--------------------------------------------------+-------------------------
 the following simple program using boost.program_options crashes with
 the boost macports


 #include <iostream>

 #include <boost/program_options.hpp>
 namespace po = boost::program_options;
 int main(int ac, char** av)
 {
         using namespace std;
 //locale::global(locale(""));
 // Declare the supported options.
 po::options_description desc("Allowed options");
 desc.add_options()
     ("help", "produce help message")
     ("compression", po::value<int>(), "set compression level")
 ;

 po::variables_map vm;
 po::store(po::parse_command_line(ac, av, desc), vm);
 po::notify(vm);

 if (vm.count("help")) {
         cout << desc << "\n";
     return 1;
 }

 if (vm.count("compression")) {
     cout << "Compression level was set to "
  << vm["compression"].as<int>() << ".\n";
 } else {
     cout << "Compression level was not set.\n";
 }
 }


 the problem lies in printing the options_description structure


 (gdb) r --help
 Starting program: /private/tmp/t --help
 Allowed options:
 t(40384) malloc: *** error for object 0x7fff70a22500: pointer being freed
 was not allocated
 *** set a breakpoint in malloc_error_break to debug

 Program received signal SIGABRT, Aborted.
 0x00007fff88cab5d6 in __kill ()
 (gdb) bt
 #0  0x00007fff88cab5d6 in __kill ()
 #1  0x00007fff88d4bcd6 in abort ()
 #2  0x00007fff88c636b5 in free ()
 #3  0x00000001001299d0 in std::basic_stringbuf<char,
 std::char_traits<char>, std::allocator<char> >::overflow ()
 #4  0x000000010012e13c in std::basic_streambuf<char,
 std::char_traits<char> >::xsputn ()
 #5  0x00007fff84fcdae4 in std::__ostream_write<char,
 std::char_traits<char> > ()
 #6  0x00007fff84fcbb98 in std::__ostream_insert<char,
 std::char_traits<char> > ()
 #7  0x0000000100063b3d in
 boost::program_options::options_description::print ()
 #8  0x00000001000640b7 in boost::program_options::operator<< ()
 #9  0x00000001000016cf in main ()

-- 
Ticket URL: <https://trac.macports.org/ticket/29394>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list