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
address@hidden
https://lists.nongnu.org/mailman/listinfo/openexr-devel