openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] Windows Dr.Memory and OpenEXR


From: Nick Porcino
Subject: Re: [Openexr-devel] Windows Dr.Memory and OpenEXR
Date: Mon, 27 Feb 2017 07:50:13 +0000

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
Sent: Sunday, February 26, 2017 1:38 PM
To: address@hidden
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
address@hidden
https://lists.nongnu.org/mailman/listinfo/openexr-devel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]