Hi Henner,
Thanks for the reply. I am also working on this problem with Des.
The crash occurs on Mac x86_64 and Windows x86 or x86_64. We don't
build on 32 bit mac. Windows compiler is VS2008, MAC is clang. Have
not tested our linux builds.
The crash is in:
const FileDescriptor* DescriptorPool::FindFileByName(const string&
name) const {
MutexLockMaybe lock(mutex_);
...
}
The "this" pointer is NULL. The DescriptorPool singleton methods are
called ( was not created properly?). The
DescriptorPool::generated_pool() is called and appears to be
initialised when stepping through the code. We have triple+ checked we
are linking against the debug libraries and are building debug.
Stack trace below:
WorkStateTask_unittest.exe!
google::protobuf::DescriptorPool::FindFileByName(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
name="invtaskmodel.proto") Line 873 + 0x3 bytes C++
WorkStateTask_unittest.exe!
invtaskmodel::protobuf_AssignDesc_invtaskmodel_2eproto() Line 195 +
0x2e bytes C++
WorkStateTask_unittest.exe!
google::protobuf::ProtobufOnceType::Init(void (void)*
init_func=0x0053c7b0) Line 79 + 0x5 bytes C++
WorkStateTask_unittest.exe!
google::protobuf::GoogleOnceInit(google::protobuf::ProtobufOnceType *
once=0x006971b4, void (void)* init_func=0x0053c7b0) Line 105 C++
WorkStateTask_unittest.exe!invtaskmodel::`anonymous
namespace'::protobuf_AssignDescriptorsOnce() Line 1269 + 0xf bytes C+
+
WorkStateTask_unittest.exe!
invtaskmodel::InversionTask::GetMetadata() Line 26904 C++
WorkStateTask_unittest.exe!
google::protobuf::Message::GetDescriptor() Line 296 + 0x32 bytes C++
WorkStateTask_unittest.exe!ProtocolsTestCase::testCreateInvTask()
Line 198 + 0xb bytes C++
WorkStateTask_unittest.exe!
CppUnit::TestCaller<ProtocolsTestCase>::runTest() Line 166 + 0x10
bytes C++
> cppunitd_dll.dll!CppUnit::TestSuccessListener::TestSuccessListener() + 0x1b588 bytes
Thanks in advance!
Stewart