Page 1 of 2
Debug crash when using Visual Studio
Posted: 2010-02-21T08:48:00-07:00
by steveq
Hey All,
I have written a small program to test out ImageMagick.
It is a dialog based MFC app.
If I run the program in release mode, it works perfectly, loading an image and writing it back out in a different format.
However in debug mode, it crashes on the read(), the exception doesn't even get trapped!
Has anyone had similar issues and found a sloution please?
Thanks heaps,
Steve Q.
Re: Debug crash when using Visual Studio
Posted: 2010-02-21T08:58:56-07:00
by magick
You may need to build ImageMagick from source in debug mode to use within a debug application. We're not completely sure because we are primarily Linux developers.
Re: Debug crash when using Visual Studio
Posted: 2010-02-21T09:05:49-07:00
by steveq
Thanks magick,
No worries, where do I get the source and is there a visual studio workspace included with it?
Thanks heaps,
Steve Q.
Re: Debug crash when using Visual Studio
Posted: 2010-02-21T09:16:29-07:00
by magick
See
http://www.imagemagick.org/script/insta ... hp#windows for the ImageMagick Windows source and build instructions.
Re: Debug crash when using Visual Studio
Posted: 2010-02-21T09:22:29-07:00
by steveq
Thanks again magick,
Your support is amazing!
I really appreciate your help.
Steve Q.
Re: Debug crash when using Visual Studio
Posted: 2010-02-22T01:05:09-07:00
by steveq
Thanks magic,
Rebuilding in Visual Studio fixed the crash!
CYA
Steve
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T05:58:15-07:00
by prebenh
Hi
Did you find a solution. I'm having the exact same problems - however, a recompile of the imagemagick framework doesn't work here.
- Preben
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T06:04:11-07:00
by steveq
Hey Preben,
I downloaded the Windows source, then I built them in VS.
Make sure you are using the Debug DLLs and .lib and not the release versions when running in debug mode. I just copied the debug DLLs into the debug directory where the final .exe was built.
All is fine now and I can run the debug code happily!
CAY
Steve
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T06:15:42-07:00
by prebenh
Hmm... Yeah I'm having some trouble with that...
I used the configure.exe file to construct a project under the VisualMagick folder. I selected the 8bit per colour instead of the 16bit and uses a static single threaded library.
I'm gonna try the new version now - I have been using 6.5.2-Q8 version. However, I don't think it'll change anything.
- Preben
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T06:16:40-07:00
by prebenh
Are you using any special settings for your project - or just the default ones that Visual Studio provides for you!
- Preben
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T06:17:39-07:00
by steveq
Yeah.... I used the 16bpp version, sorry I can't be of more help.
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T06:28:14-07:00
by steveq
No I jut used the configuration that was built for me... I didn't change anything.
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T07:04:15-07:00
by prebenh
Maybe you can help anyway... When compiling my own project everything seems fine, however debugging gets errors
How are the settings for your project?
I unzipped the ImageMagick library to the root of my computer:
C:\ImageMagick-6.6.0
- added C:\ImageMagick-6.6.0\VisualMagick\bin to the system PATH
Set up my project to use:
Linker library directories:
- C:\ImageMagick-6.6.0\VisualMagick\bin
- C:\ImageMagick-6.6.0\VisualMagick\lib
and Linker libraries:
- CORE_DB_magick_.lib
- CORE_DB_Magick++_.lib
and Include directories
- C:\ImageMagick-6.6.0\
- C:\ImageMagick-6.6.0\Magick++\lib
and I set up the preprocessor definitions for the project:
- NOMINMAX;NDEBUG;WIN32;_CONSOLE;_VISUALC_;NeedFunctionPrototypes;_DLL;_MAGICKMOD_;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS
When debugging I get this stack trace:
Code: Select all
msvcr80d.dll!memcpy(unsigned char * dst=0x0990e0d0, unsigned char * src=0xcccccccc, unsigned long count=47) Line 188 Asm
msvcr80d.dll!memcpy_s(void * dst=0x0990e0d0, unsigned int sizeInBytes=4095, const void * src=0xcccccccc, unsigned int count=47) Line 67 + 0x11 bytes C
msvcp80d.dll!std::char_traits<char>::_Copy_s(char * _First1=0x0990e0d0, unsigned int _Size_in_bytes=4095, const char * _First2=0xcccccccc, unsigned int _Count=47) Line 575 + 0x16 bytes C++
msvcp80d.dll!std::_Traits_helper::copy_s<std::char_traits<char> >(char * _First1=0x0990e0d0, unsigned int _Size=4095, const char * _First2=0xcccccccc, unsigned int _Count=47, std::_Secure_char_traits_tag __formal={...}) Line 707 + 0x15 bytes C++
msvcp80d.dll!std::_Traits_helper::copy_s<std::char_traits<char> >(char * _First1=0x0990e0d0, unsigned int _Size=4095, const char * _First2=0xcccccccc, unsigned int _Count=47) Line 699 + 0x21 bytes C++
msvcp80d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy_s(char * _Dest=0x0990e0d0, unsigned int _Dest_size=4095, unsigned int _Count=47, unsigned int _Off=0) Line 1705 + 0x1d bytes C++
msvcp80d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::copy(char * _Dest=0x0990e0d0, unsigned int _Count=4095, unsigned int _Off=0) Line 1695 C++
CORE_DB_Magick++_.dll!Magick::Options::fileName(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & fileName_=<Bad Ptr>) Line 233 + 0x1e bytes C++
CORE_DB_Magick++_.dll!Magick::Image::read(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & imageSpec_=<Bad Ptr>) Line 1489 C++
pose.exe!testCan() Line 260 C++
pose.exe!main(int __formal=1, char * * argv=0x09a181b0) Line 81 C++
pose.exe!__tmainCRTStartup() Line 597 + 0x17 bytes C
kernel32.dll!7c817077()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
What is wrong?
- Preben
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T07:21:59-07:00
by steveq
Hey Preben,
My pre-processor directives looks like this:
WIN32;_WINDOWS;_DEBUG;OPJ_STATIC
I only have the one link lib:
"..\ImageMagick-6.5.9\VisualMagick\lib\CORE_DB_Magick++_.lib"
Plus the includes...
Then I did this:
#include "Magick++.h"
using namespace std;
using namespace Magick;
And that's about it (apart from copying the debug DLLs into my debug dir)?
I can try and create a blank project that compiles and works for you if you need it?
CYA
Steve
Re: Debug crash when using Visual Studio
Posted: 2010-03-02T09:52:09-07:00
by prebenh
I'll just try what you've done and see what happens (tomorrow).
Did you initialize Imagemagick as described in the documentation?
http://www.imagemagick.org/Magick%2B%2B/
with
InitializeMagick(path)
Which Visual Studio version are you using?
- Preben