Aha, now we're getting somewhere! Let me look at those lines and see if I can spot anything.
I may ask you to make some changes on your end to facilitate debugging. Stay tuned... > On Apr 23, 2019, at 2:53 PM, Mathieu Prevot <[email protected]> wrote: > > I use a debug oiio, and release project; in that case I managed to get a call > stack. > > `str` in `bool Strutil::get_rest_arguments(const std::string& str, > std::string& base, std::map<std::string, std::string>& result)` > has a problem ("error reading characters of string"). > > OpenImageIO.dll!OpenImageIO_v2_1::Strutil::get_rest_arguments(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > & str, > std::basic_string<char,std::char_traits<char>,std::allocator<char> > & base, > std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > > & result) Line 270 C++ > > OpenImageIO.dll!OpenImageIO_v2_1::ImageInput::create(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > & > filename, bool do_open, const OpenImageIO_v2_1::ImageSpec * config, > OpenImageIO_v2_1::string_view plugin_searchpath) Line 512 C++ > > OpenImageIO.dll!OpenImageIO_v2_1::ImageInput::open(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > & > filename, const OpenImageIO_v2_1::ImageSpec * config) Line 106 C++ > > oiioTest.exe!DPXio::ReadFloat(char *) Line 31 C++ > > Here my function: > > auto DPXio::ReadFloat(const char* filename) -> SparseArray<float>* > { > auto in = ImageInput::open(filename); > if (!in) return nullptr; > > auto spec = in->spec(); > DPXfloat.SetSize(spec); > in->read_image(TypeDesc::FLOAT, DPXfloat.Values); > in->close(); > > return &DPXfloat; > } > > and it is called this way: > > auto sut = new DPXio(); > auto path = > "C:/sensomovie/C200/A011C118_19041345_CANON/A011C118_19041345_CANON_00001926.DPX"; > //auto path = > "C:/sensomovie/C200/A014C203_190414BL_CANON_16bits/A014C203_190414BL_CANON_00001331.DPX"; > > std::cout << (FileExist(path) ? "File OK: " : "No such file: ") << path > << "." << endl; > > auto result = sut->ReadFloat(path); > if (result == nullptr) > cout << "null result" << endl; > else > { > cout << "colors: " << result->Colors << endl; > cout << "width: " << result->Width << endl; > cout << "height: " << result->Height << endl; > } > > The compilation arguments (I'm using VS2019 enterprise, toolset Visual Studio > 2019 (v142), but I have the same with v141): > > /permissive- /Yu"pch.h" /GS /GL /W3 /Gy /Zc:wchar_t /I"c:\lib\tiff\include" > /I"c:\lib\openexr\include" /I"c:\lib\oiio\include" /Zi /Gm- /O2 /sdl > /Fd"x64\Release\vc142.pdb" /Zc:inline /fp:precise /D "NDEBUG" /D "_CONSOLE" > /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /MD > /FC /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" > /Fp"x64\Release\oiioTest.pch" /diagnostics:classic > > M > > > Le mar. 23 avr. 2019 à 23:39, till dechent <[email protected] > <mailto:[email protected]>> a écrit : > Yes I built version 2.0.6 as a release (x64) and it worked. I also tried the > DPX you provided and all was good. > > Am Di., 23. Apr. 2019 um 21:44 Uhr schrieb Mathieu Prevot > <[email protected] <mailto:[email protected]>>: > Please, can those who could open images with `ImageInput::open(filename)` > tell if it was a release or debug build (of their own binary, not oiio's) ? > If it was a debug, can you test with a release build ? > > Many thanks > M > > Le lun. 22 avr. 2019 à 16:35, Mathieu Prevot <[email protected] > <mailto:[email protected]>> a écrit : > Tested with boost 1.68 and 1.70, both are OK with oiio debug, and opening the > DPX file works correctly in that configuration. > Only when I build and use oiio release, it fails (with both boost versions). > > I'm not sure where to go to continue the investigation. > > For repro, my build script; which needs to be run in the ooio-master folder > as is. msbuild needs to be in $path. > > $target = "Visual Studio 15 2017 Win64" > > function configure { > > I:\IntelSWTools\compilers_and_libraries_2019.3.203\windows\tbb\bin\tbbvars.bat > intel64 vs2017 > cmake.exe -G $target -T v141, host=x64 -j16 ` > > -DCMAKE_PREFIX_PATH="I:/lib/tiff;I:\lib\boost-1.70;I:/lib/zlib;I:/lib/libpng;I:/lib/openexr;I:/lib/libjpegturbo" > ` > -DTBB_ROOT_DIR="I:/IntelSWTools/compilers_and_libraries/windows/tbb" ` > -DCMAKE_INSTALL_PREFIX="I:/lib/oiio-release" ` > -DJPEGTURBO_PATH="i:/lib/libjpegturbo" ` > -DUSE_QT=0 -DOIIO_BUILD_TESTS=1 -DUSE_PYTHON=0 ` > -DPYTHON_EXECUTABLE="I:/intelpython2/python.exe" ` > .. > } > > function build { > #"build oiio debug" > #MSBuild.exe OpenImageIO.sln /verbosity:m /m > "build oiio release" > MSBuild.exe OpenImageIO.sln /p:Configuration=Release /verbosity:m /m > } > > function install { > #"install oiio debug" > #MSBuild.exe INSTALL.vcxproj /verbosity:m /m > "install oiio release" > MSBuild.exe INSTALL.vcxproj /p:Configuration=Release /verbosity:m /m > } > > function clean { > if (test-path build) { > remove-item -recurse -force build > } > New-Item -ItemType Directory build > } > > clean > Set-Location build > configure > build > install > Set-Location .. > > > Regards > M > > > > Le sam. 20 avr. 2019 à 19:10, Larry Gritz <[email protected] > <mailto:[email protected]>> a écrit : > I'm not sure what else I can do unless I either have a case I can reproduce > on my end, or a more full stack trace or at least indication of what specific > line in the OIIO is where the exception is thrown (just knowing precisely > where the crash happens may be enough do diagnose or defensively program > around). > > >> On Apr 19, 2019, at 2:11 AM, till dechent <[email protected] >> <mailto:[email protected]>> wrote: >> >> ImageInput::open() works for me with the downloaded DPX on version 2.0.6. >> >> Am Do., 18. Apr. 2019 um 18:41 Uhr schrieb Stephen Blair >> <[email protected] <mailto:[email protected]>>: >> It doesn't crash on Windows for me, but that's with OpenImageIO-Arnold >> 2.1.0dev >> >> On Thu, Apr 18, 2019 at 1:07 PM Larry Gritz <[email protected] >> <mailto:[email protected]>> wrote: >> Hi, thanks. I'm able to open that DPX file on my end (not on Windows), so I >> don't think it's a corrupt file. >> >> Can you build all of OIIO in Debug mode (not Release) and use the debugger >> to find out what file and line is where the actual crash is occurring? The >> screenshot you provided only shows where in your unit test it was, so the >> actual crash could be practically anywhere inside what happens within the >> open() call. >> >> I'm sorry I'm not easily able to help, I don't have access to a Windows >> machine. >> >> Can somebody else out there who uses OIIO on Windows please do us a favor >> and download this DPX file in the links below, then try anything that forces >> an open (e.g., 'iinfo -v -stats blah.dpx') and report what happens? Does >> this crash for everybody? If anyone can reproduce, do you have any ideas or >> can you get closer to finding what line within the OIIO code is the source >> of the problem? >> >> -- lg >> >> >>> On Apr 18, 2019, at 1:16 AM, Mathieu Prevot <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hello, >>> >>> Following the documentation "4.1 Image Input Made Simple"; >>> I'm having an exception at opening a dpx file and tiff file from simple >>> code: >>> >>> auto in = ImageInput::open(filename); // here >>> if (!in) return; >>> >>> Exception thrown at 0x00007FFDBEBDA388 in testhost.exe: Microsoft C++ >>> exception: Microsoft::VisualStudio::CppUnitTestFramework::CSEException >>> >>> More detailed information: >>> https://1drv.ms/u/s!AlUmbfQiLoTZhFQir--TvMglJ0iT >>> <https://1drv.ms/u/s!AlUmbfQiLoTZhFQir--TvMglJ0iT> >>> >>> Images: >>> https://1drv.ms/f/s!AlUmbfQiLoTZhFKpXHJcchpi0hBY >>> <https://1drv.ms/f/s!AlUmbfQiLoTZhFKpXHJcchpi0hBY> >>> >>> I'm using the master version of oiio in windows with tiff 4.0.10, openexr >>> 2.3.0, zlib 1.2.11, libpng 1.6.35, boost 1.70, libjpegturbo 2.0.3, tbb >>> 2019.3; cmake 3.13.4, VS2017. >>> >>> I'm running this in a c++ unit test, (with some c code since data will be >>> used in an interop context). >>> >>> TEST_CLASS(DPXioTests) >>> { >>> public: >>> TEST_METHOD(Instance) >>> { >>> auto sut = new DPXio(); >>> Assert::IsNotNull(sut); >>> } >>> >>> TEST_METHOD(ReadDPX) >>> { >>> auto sut = new DPXio(); >>> auto path = >>> "C:/sensomovie/C200/A011C118_19041345_CANON/A011C118_19041345_CANON_00001926.DPX"; >>> if(!FileExist(path)) >>> { >>> wstringstream s; >>> s << "No such file: " << path << "."; >>> Logger::WriteMessage(s.str().c_str()); >>> return; >>> } >>> try >>> { >>> auto result = sut->Read(path); >>> Assert::IsNotNull(result); >>> Assert::IsTrue(result->Colors >= 3); >>> Assert::IsTrue(result->Height == 2160); >>> Assert::IsTrue(result->Width == 4096); >>> } >>> catch (Exception& e) >>> { >>> auto lastErrorID = GetLastError(); >>> if (lastErrorID != 0) >>> { >>> LPVOID errorBuffer{}; >>> FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | >>> FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, >>> nullptr, lastErrorID, MAKELANGID(LANG_NEUTRAL, >>> SUBLANG_DEFAULT), (LPTSTR)&errorBuffer, 0, nullptr); >>> wstringstream s; >>> s << "Exception: " << e.what() << ". ID: "<< >>> lastErrorID << ". Message: " << errorBuffer<< "."; >>> Logger::WriteMessage(s.str().c_str()); >>> } >>> else >>> { >>> wstringstream s; >>> s << "Exception: " << e.what(); >>> Logger::WriteMessage(s.str().c_str()); >>> } >>> } >>> } >>> }; >>> >>> >>> Mathieu >>> _______________________________________________ >>> Oiio-dev mailing list >>> [email protected] <mailto:[email protected]> >>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> >> >> -- >> Larry Gritz >> [email protected] <mailto:[email protected]> >> >> >> >> >> _______________________________________________ >> Oiio-dev mailing list >> [email protected] <mailto:[email protected]> >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> >> _______________________________________________ >> Oiio-dev mailing list >> [email protected] <mailto:[email protected]> >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> >> _______________________________________________ >> Oiio-dev mailing list >> [email protected] <mailto:[email protected]> >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > > -- > Larry Gritz > [email protected] <mailto:[email protected]> > > > > > _______________________________________________ > Oiio-dev mailing list > [email protected] <mailto:[email protected]> > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > _______________________________________________ > Oiio-dev mailing list > [email protected] <mailto:[email protected]> > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > _______________________________________________ > Oiio-dev mailing list > [email protected] <mailto:[email protected]> > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > _______________________________________________ > Oiio-dev mailing list > [email protected] > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org -- Larry Gritz [email protected]
_______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
