That crashing line is a std::string comparison andshould be straightforward. If in.header(p).type() is a bad reference, this issue could occur. It’s difficult to say without any more information. You might try putting some cout’s in there at the point of failure to see if in.header(p).type() is actually a valid string or not. That would probably answer the question of whether the fault is in OpenEXR or Dr.Memory.
From: Gonzalo Garramuño<mailto:ggarr...@gmail.com> Sent: Sunday, February 26, 2017 1:38 PM To: openexr-devel@nongnu.org<mailto:openexr-devel@nongnu.org> Subject: [Openexr-devel] Windows Dr.Memory and OpenEXR I am trying to debug my program (or any openexr demo program like exrstdattr) under Windows Dr.Memory (a multiplatform memory tool like valgrind), and when the code executes it raises the following exceptions before crashing: Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:41:18 Dr. Memory results for pid 4544: "exrstdattr.exe" Application cmdline: "exrstdattr.exe d:/movies/openexr-images/ScanLines/StillLife.exr test.exr" Recorded 115 suppression(s) from default c:\Program Files (x86)\Dr. Memory\bin64\suppress-default.txt Error #1: UNADDRESSABLE ACCESS beyond heap bounds: reading 0x0000008835a0d098-0x0000008835a0d0a0 8 byte(s) # 0 std::_String_val<>::_Myptr [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:521] # 1 std::_String_alloc<>::_Myptr [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:583] # 2 std::basic_string<>::compare [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2121] # 3 std::operator==<> [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2460] # 4 main [d:\code\applications\mrviewer\dependencies\openexr\exrstdattr\main.cpp:871] Note: @0:00:03.157 in thread 4600 Note: refers to 0 byte(s) beyond last valid byte in prior malloc Note: prev lower malloc: 0x0000008835a0d070-0x0000008835a0d098 Note: allocated here: Note: # 0 replace_malloc [d:\drmemory_package\common\alloc_replace.c:2576] Note: # 1 IlmImf-2_2.dll!Imf_2_2::CpuId::CpuId +0x634 (0x00007ffa2275c7f5 <IlmImf-2_2.dll+0x8c7f5>) Note: # 2 IlmImf-2_2.dll!Imf_2_2::Slice::`default constructor closure' +0x12b0 (0x00007ffa226d7db1 <IlmImf-2_2.dll+0x7db1>) Note: # 3 IlmImf-2_2.dll!Imf_2_2::TypedAttribute<>::writeValueTo +0x610 (0x00007ffa226d5281 <IlmImf-2_2.dll+0x5281>) Note: # 4 IlmImf-2_2.dll!Imf_2_2::Header::insert +0x1ea (0x00007ffa226e316b <IlmImf-2_2.dll+0x1316b>) Note: # 5 IlmImf-2_2.dll!Imf_2_2::Slice::`default constructor closure' +0x6ea (0x00007ffa226d71eb <IlmImf-2_2.dll+0x71eb>) Note: # 6 IlmImf-2_2.dll!Imf_2_2::CpuId::CpuId +0x634 (0x00007ffa2275c7f5 <IlmImf-2_2.dll+0x8c7f5>) Note: # 7 IlmImf-2_2.dll!Imf_2_2::PreviewRgba::`default constructor closure'+0x67b (0x00007ffa226e0d2c <IlmImf-2_2.dll+0x10d2c>) Note: # 8 IlmImf-2_2.dll!Imf_2_2::FrameBuffer::insert +0x8ca (0x00007ffa226de88b <IlmImf-2_2.dll+0xe88b>) Note: # 9 IlmImf-2_2.dll!Imf_2_2::FrameBuffer::insert +0x36a (0x00007ffa226de32b <IlmImf-2_2.dll+0xe32b>) Note: #10 IlmImf-2_2.dll!Imf_2_2::Slice::`default constructor closure' +0x1340 (0x00007ffa226d7e41 <IlmImf-2_2.dll+0x7e41>) Note: #11 IlmImf-2_2.dll!Imf_2_2::FrameBuffer::insert +0xdc5 (0x00007ffa226ded86 <IlmImf-2_2.dll+0xed86>) Note: instruction: cmp 0x20(%rax) $0x0000000000000010 Error #2: UNADDRESSABLE ACCESS: reading 0x0000006567616d69-0x0000006567616d6a 1 byte(s) # 0 replace_memcmp [d:\drmemory_package\drmemory\replace.c:817] # 1 std::char_traits<>::compare [c:\program files (x86)\microsoft visual studio 14.0\vc\include\iosfwd:517] # 2 std::basic_string<>::_Traits_compare [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2096] # 3 std::basic_string<>::compare [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2121] # 4 std::operator==<> [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2460] # 5 main [d:\code\applications\mrviewer\dependencies\openexr\exrstdattr\main.cpp:871] Note: @0:00:03.204 in thread 4600 Note: instruction: movzx (%rax) -> %eax I am wondering if all is fine and whether Dr.Memory is getting confused and what can be done to work around the confusion. -- Gonzalo Garramuño _______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel