ImageMagick 错误:在 Linux 上 libc.so "corrupted size vs. prev_size"



我正在使用 imagemagick 7读取和编写一些 TIFF文件。我有C++代码可以执行同样的操作,并且它与Windows可以正常工作。在Linux上编写TIFF文件时,我面临此问题。我Magemagick在创建ImageMagick图像和写入文件时会崩溃。

我已经收集了崩溃的痕迹,但似乎很难用轨迹进行分析。

我在以下错误消息:

*** Error in `TestReadWriteImage': corrupted size vs. prev_size: 0x0000000001ef0430 ***
<br/>
======= Backtrace: ========= <br/>
/lib64/libc.so.6(+0x7f5d4)[0x7f81724b75d4]<br/>
/lib64/libc.so.6(+0x82de4)[0x7f81724bade4]<br/>
/lib64/libc.so.6(+0x8382c)[0x7f81724bb82c]<br/>
/lib64/libc.so.6(realloc+0x1d2)[0x7f81724bd832]<br/>
/lib64/libtiff.so.5(+0xd863)[0x7f816543e863]<br/>
/lib64/libtiff.so.5(TIFFSetField+0x94)[0x7f816543f124]<br/>
/home/data/linux_a64/code/bin/tiff.so(+0x7457)[0x7f81656ac457]<br/>
/home/data/linux_a64/code/bin/libMagickCore-7.Q8HDRI.so.0(WriteImage+0x260)[0x7f8168fc9490]<br/>
/home/data/linux_a64/code/bin/libMagick++-7.Q8HDRI.so.0(_ZN6Magick5Image5writeERKSs+0x43)[0x7f8168d1d853]<br/>

**Sample C++ Code:**<br/>
 *uchar* *pixels; // This variable contains some pixel data* <br/>
  *Magick::Image* *imImage = new Magick::Image(3, 3, "RGB",Magick::CharPixel, pixels);* <br/>
  *imImage->write("/home/tmp/Output.tiff");*

我正在为最后2个说明崩溃。

我不确定在哪里寻找问题。

是Imagemagick,libc还是Libtiff崩溃的背后?

如果有人面临同一问题,请帮助我。

我不确定在哪里寻找问题。

您的堆损坏(很可能是由于分配的堆的较早溢出引起的(。

找到此类问题的标准工具是Valgrind。

我已经收集了崩溃的痕迹,但似乎很难用轨迹进行分析。

调试堆损坏(没有专门工具(的问题是,问题表现出的地方通常与问题实际发生的地方无关。

最新更新