Vector35 / debugger

Binary Ninja debugger
Other
211 stars 14 forks source link

Running command in the debugger console sometimes causes BN to crash on Linux #187

Closed xusheng6 closed 2 years ago

xusheng6 commented 2 years ago

This happens on the staging branch, which, after the async communication refactor, we can already control the target from the console. On macOS everything works fine, on Linux BN crashes and the stack trace is not very helpful:

QFontEngineFT::shouldUseDesignMetrics(QFlags<QFontEngine::ShaperFlag>) const 0x00007fffed2088f0
QFontEngineFT::recalcAdvances(QGlyphLayout*, QFlags<QFontEngine::ShaperFlag>) const 0x00007fffed20e79f
_hb_qt_font_get_glyph_h_advance(hb_font_t*, void*, unsigned int, void*) 0x00007fffed1b6b04
hb_font_get_glyph_h_advances_default(hb_font_t*, void*, unsigned int, unsigned int const*, unsigned int, int*, unsigned int, void*) 0x00007fffed2d8c9c
_hb_ot_shape 0x00007fffed326e15
hb_shape_plan_execute 0x00007fffed2de688
hb_shape_full 0x00007fffed2ddbf9
QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QList<unsigned int> const&, bool, bool) const 0x00007fffed0be054
QTextEngine::shapeText(int) const 0x00007fffed0c6e5f
QTextEngine::shape(int) const 0x00007fffed0c8970
QTextEngine::shapeLine(QScriptLine const&) 0x00007fffed0c965a
QTextLineItemIterator::QTextLineItemIterator(QTextEngine*, int, QPointF const&, QTextLayout::FormatRange const*) 0x00007fffed0cb5b2
QTextLine::draw_internal(QPainter*, QPointF const&, QTextLayout::FormatRange const*) const 0x00007fffed0ecf96
QTextLayout::draw(QPainter*, QPointF const&, QList<QTextLayout::FormatRange> const&, QRectF const&) const 0x00007fffed0eee93
QTextDocumentLayoutPrivate::drawBlock(QPointF const&, QPainter*, QAbstractTextDocumentLayout::PaintContext const&, QTextBlock const&, bool) const 0x00007fffed0a4191
QTextDocumentLayoutPrivate::drawFlow(QPointF const&, QPainter*, QAbstractTextDocumentLayout::PaintContext const&, QTextFrame::iterator, QList<QTextFrame*> const&, QTextBlock*) const 0x00007fffed0a4ce2
QTextDocumentLayoutPrivate::drawFrame(QPointF const&, QPainter*, QAbstractTextDocumentLayout::PaintContext const&, QTextFrame*) const 0x00007fffed0a6d6d
QTextDocumentLayout::draw(QPainter*, QAbstractTextDocumentLayout::PaintContext const&) 0x00007fffed0b403f
QWidgetTextControl::drawContents(QPainter*, QRectF const&, QWidget*) 0x00007ffff74bf820
QTextEditPrivate::paint(QPainter*, QPaintEvent*) 0x00007ffff748d94e
QTextBrowser::paintEvent(QPaintEvent*) 0x00007ffff74927df
QWidget::event(QEvent*) 0x00007ffff72bca7e
QFrame::event(QEvent*) 0x00007ffff7357242
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) 0x00007fffec6e9e93
QApplicationPrivate::notify_helper(QObject*, QEvent*) 0x00007ffff725efc5
QApplication::notify(QObject*, QEvent*) 0x00007ffff726a230
QCoreApplication::notifyInternal2(QObject*, QEvent*) 0x00007fffec6ea10a
QWidgetPrivate::sendPaintEvent(QRegion const&) 0x00007ffff72b460a
QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) 0x00007ffff72b4f07
QWidgetRepaintManager::paintAndFlush() 0x00007ffff72c70ed
QWidgetRepaintManager::sync() 0x00007ffff72c7da4
QWidgetPrivate::syncBackingStore() 0x00007ffff72b5d05
QWidget::event(QEvent*) 0x00007ffff72bcf40
QMainWindow::event(QEvent*) 0x00007ffff7405248
QApplicationPrivate::notify_helper(QObject*, QEvent*) 0x00007ffff725efd6
QApplication::notify(QObject*, QEvent*) 0x00007ffff726a230
QCoreApplication::notifyInternal2(QObject*, QEvent*) 0x00007fffec6ea10a
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) 0x00007fffec6ed37c
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 0x00007fffec8838e1
QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 0x00007fffe7fba112
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 0x00007fffec6f5f3b
QCoreApplication::exec() 0x00007fffec6f19f6
<unknown> 0x00005555555fe8b8
__libc_start_call_main 0x00007fffec078d90
__libc_start_main_impl 0x00007fffec078e40
<unknown> 0x0000555555609d2e
xusheng6 commented 2 years ago

This might just be a Qt issue -- I am using a qt build that is different from the one used to build BN.

xusheng6 commented 2 years ago

No this is not just a qt issue. The crash is also happening on the latest dev.