|
Boost : |
Subject: [boost] lexical_cast crashing on solaris
From: boostman (narsimha.ram_at_[hidden])
Date: 2011-03-29 01:25:14
Hi Boost Experts
Below is the code that is causing crash on solaris:
entity::VecObj getData(const message::Message & msg)
{
entity::VecObj odfs;
util::MyString keyStr;
keyStr = _T("Test msg");
for(size_t i=2; msg.hasKey(keyStr) ; ++i)
{
util::MyString mdfAlias = msg.value(keyStr);
entity::VecObj ret = storage::byAlias(mdfAlias);
if(ret.size())
odfs.push_back(ret[0]);
keyStr = _T("Test msg") + util::convert(util::getString(i)) + _T("]");
}
if(!odfs.size())
throw util::Exception(util::ERROR_MDFNOTFOUND,
util::ERROR_MDFNOTFOUND_STR);
return odfs;
}
template
std::string getString(const T & val)
{
std::string res("");
try {
res = boost::lexical_cast(val);
} catch(bad_lexical_cast &) {
}
return res;
}
Below is the stack trace corresponding to it.
----------------- lwp# 248 / thread# 248 --------------------
fd5c6d10 waitid (0, 4b5d, fa2faf40, 3)
fd5b9a34 waitpid (4b5d, 0, 0, 0, 1c800, fd5f3580) + 60
000c76e4 void handleSignal(int) (b, 35d4, fa2fb208, fd5f4604, fd5f3580,
4b5d) + 114
fd5c5924 __sighndlr (b, 0, fa2fb208, c75d0, 0, 0) + c
fd5ba868 call_user_handler (b, 0, 12, 0, fc395000, fa2fb208) + 3b8
fd3df5d4 void std::ios::init(std::streambuf *) (fa2fb738, 0, 45, fab18, 3,
fd4e30a8) + a8
fd3dfce0 std::ios::basic_ios #Nvariant 1() (fa2fb738, fd4e52b8, 103408, 0,
fd4e30a8, 348) + 44
fd467648 std::stringstream::basic_stringstream(int) (fa2fb6c8, c, 1e4,
fa2fb738, fd4e800c, fd4e30a8) + 48
fc929ec8
boost::detail::lexical_stream<std::string,unsigned>::lexical_stream
#Nvariant 1() (fa2fb6c8, fcb1d710, 0, fdbfff58, fd0ee26c, fd0ee830) + 10
fc929bd0 __type_0 boost::lexical_cast<std::string,unsigned>(__type_1)
(fa2fb7f4, 2, fa2fb7fb, fcbcbd88, 57b5040, 0) + 28
fc925844 std::string util::getString(const __type_0&) (fa2fb89c, fa2fb8b8,
3, 4, 4bac880, fd0ee8f8) + 64
fca9cf00 std::vector<boost::shared_ptr<entity::Entity>
>operation::getData(const message::Message&) (fa2fb964, 8195784, 1a86c,
4288d10, 4288d10, 4288d10) + 168
I am wondering how can this crash can happen for a very simple case of
converting from unsigned to string using lexical cast. Any help would be
highly appreciated.
Regards
Boostman
-- View this message in context: http://boost.2283326.n4.nabble.com/lexical-cast-crashing-on-solaris-tp3413786p3413786.html Sent from the Boost - Dev mailing list archive at Nabble.com.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk