eset/ipyida

Crash after completion

alxchk opened this issue · 5 comments

On IDA 6.95/Linux I get next issue

ASSERT: "f == frame" in file /home/aundro/qt-builds/5.6.0/qtbase/src/gui/text/qtextdocument_p.cpp, line 1492
zsh: abort      ./idaq```

This happens when I try to complete something with multiple choises

Hi, I get the same here.

ASSERT: "f == frame" in file text/qtextdocument_p.cpp, line 1492
E: Child terminated by signal ‘Aborted’
Ida Linux with Qt 5.6/QtSvg 5.6/Pyqt 5.6
This happend when I'm in the Qt Ipyida windows and try to use the autocompletion on idautils for example.

If I connect from another shell using jupyter-qtconsole-py2 --existing kernel-16910.json I didn't get this bug.

Bug persists under IDA 7.0 / Linux, (Ubuntu) and jupyter-qtconsole --existing works around.

Thanks for reporting, I was about to ask retest with 7.0 just in case. I should have access to a IDA Linux user this week to troubleshoot, I'll keep you updated.

Hi @marc-etienne tested with 7.0 SP1 under arch linux, same error:

ASSERT: "f == frame" in file /home/tester/qt-builds/5.6.0-x64/qtbase/src/gui/text/qtextdocument_p.cpp, line 1492

I finally found some time to look into this and was able to replicate. It seems that using the "ncurses" completion method creates content that crashes Qt.

See: https://github.com/jupyter/qtconsole/blob/4.3.1/qtconsole/completion_html.py#L348

Crashes at http://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/text/qtextdocument_p.cpp?h=5.6#n1492

Probably called from: https://github.com/jupyter/qtconsole/blob/4.3.1/qtconsole/console_widget.py#L985

Fixed by using the "dropdown" completion method on Linux until the crash is fixed upstream.