Crash when printing on Mac

Lubomir I. Ivanov neolit123 at gmail.com
Fri Jul 18 02:32:15 PDT 2014


On 18 July 2014 10:47, Robert Helling <helling at lmu.de> wrote:
> Hi,
>
> I was going to see what you guys have done wrt printing. But I don’t get
> there as subsurface crashes reliably when opening the print dialog. Just
> startup subsurface and hit Cmd-P. Relevant part of stack trace:
>
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   ???                           0x00007fff7d88fd60 vtable for
> __cxxabiv1::__si_class_type_info + 16
> 1   subsurface                     0x00000001000c8c60
> PrintOptions::initSliderWithLabel(QSlider*, QLabel*, int) + 48
> (printoptions.cpp:74)
> 2   subsurface                     0x00000001000c86e4
> PrintOptions::setup(options*) + 84 (printoptions.cpp:27)
> 3   subsurface                     0x00000001000c8680
> PrintOptions::PrintOptions(QWidget*, options*) + 208 (printoptions.cpp:13)
> 4   subsurface                     0x00000001000c85a5
> PrintOptions::PrintOptions(QWidget*, options*) + 37 (printoptions.cpp:13)
> 5   subsurface                     0x00000001000c212b
> PrintDialog::PrintDialog(QWidget*, QFlags<Qt::WindowType>) + 379
> (printdialog.cpp:25)
> 6   subsurface                     0x00000001000c1f9d
> PrintDialog::PrintDialog(QWidget*, QFlags<Qt::WindowType>) + 29
> (printdialog.cpp:66)
> 7   subsurface                     0x000000010008f4fa
> MainWindow::on_actionPrint_triggered() + 74 (mainwindow.cpp:309)
> 8   subsurface                     0x00000001001331a4
> MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) +
> 260 (moc_mainwindow.cpp:161)
> 9   subsurface                     0x00000001001337ee
> MainWindow::qt_metacall(QMetaObject::Call, int, void**) + 126
> (moc_mainwindow.cpp:251)
>
>
> Exception Type:  EXC_BAD_ACCESS (SIGBUS)
> Exception Codes: KERN_PROTECTION_FAILURE at 0x00007fff7d88fd60
>
> VM Regions Near 0x7fff7d88fd60:
>     __DATA                 00007fff7d88e000-00007fff7d88f000 [    4K]
> rw-/rwx SM=COW
> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
> --> __DATA                 00007fff7d88f000-00007fff7d891000 [    8K]
> rw-/rwx SM=COW  /usr/lib/libc++abi.dylib
>     unused shlib __DATA    00007fff7d891000-00007fff7d8b1000 [  128K]
> rw-/rwx SM=COW  system shared lib __DATA not used by this process
>
> Application Specific Information:
> Performing @selector(qtDispatcherToQAction:) from sender NSMenuItem
> 0x10fb5ac50
>
>
> Running in debugger did not point to anything obvious, maybe except the fact
> that line 3 of the stack trace is actually
>
>
> initSliderWithLabel(ui.sliderPHeight, ui.valuePHeight,
> printOptions->profile_height);
>
>
> where ui.sliderPHeight happens to be a NULL pointer. But the exception seems
> to be thrown before that is tried to be accessed.
>

here are a couple of patches that remove some dead code - they remove
the print height slider options entirely, but i don't think the SIGBUS
is caused by a slider.
if the sliders cause a SIGBUS that is quite bad and it's not really our fault.

to explain, setupUI() is called before PrintOptions::setup(), so when
reaching initSliderWithLabel() any of the sliders should be non-NULL
and we also assume that memory is mapped (ui_printoptions.h), aligned
and the physical address is valid.

the SIGBUS itself could be caused by the OSX print framework or by a
faulting RAM module. 0x00007fff7d88fd60 looks OK in terms of 8 bytes
alignment. best would be to post the OSX version so that other users
can test as well.

lubomir
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Print-remove-the-height-sliders-from-the-PrintOption.patch
Type: application/octet-stream
Size: 21257 bytes
Desc: not available
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140718/2baf43c2/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Print-remove-the-options-for-height-from-display.h-s.patch
Type: application/octet-stream
Size: 1415 bytes
Desc: not available
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140718/2baf43c2/attachment-0003.obj>


More information about the subsurface mailing list