Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
5.2.0 RC1
-
Ubuntu 13.10, x86_64
***Graphics driver might matter***
Driver: 'nvidia id: NVIDIA ELF-TLS Shared Library 319.60 Wed Sep 25 14:26:46 PDT 2013'
Hardware: VGA compatible controller: NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ZOTAC International (MCO) Ltd. Device 7046
Ubuntu 13.10, x86_64 ***Graphics driver might matter*** Driver: 'nvidia id: NVIDIA ELF-TLS Shared Library 319.60 Wed Sep 25 14:26:46 PDT 2013' Hardware: VGA compatible controller: NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ZOTAC International (MCO) Ltd. Device 7046
Description
Lately there have been several reports about situations where debugging with Qt Creator 3.0/Qt 5.2 "does not work".
The setup is QProcess (or a QProcess based class starts gdb, gdb sets breakpoint, starts the debuggee, and the breakpoints are not hit. The
observable effect for small test cases is that debuggee runs successfully to the end and gdb reports "During startup program exited normally."
Starting gdb on the commandline on the same debuggee works as expected.
Directly inserting a trap in the code with asm("int $3") instead of using
gdb to set the breakpoint yields the same behaviour, the trap is also
present in the generated code, but it does not stop execution when run
in the QProcess/gdb/debuggee combination.
I can reproduce this 100% on my current desktop machine (Stock Ubuntu 13.10 64 bit, gdb 7.6.1) after a distribution change by running the dumper autotest (e.g. tests/auto/debugger/tst_dumpers dumper:QByteArray1)
I have not seen the issue before the upgrade with the same version(s) of Qt and Qt Creator before the upgrade, and neither on any other machine.
The problem seems independent of the version of Creator (current 3.0 or master "work" when comand GDB.
Bisecting Qt leads to the following commit
866a5d0c28f458d50ab9e4f011fc7a94822ce6eb is the first bad commit commit 866a5d0c28f458d50ab9e4f011fc7a94822ce6eb Author: Corentin Jabot <corentinjabot@gmail.com> Date: Sun Feb 17 14:05:57 2013 +0100 Make QProcess startable with open() Add setProgram() and setArguments() methods to the QProcess api. Add a convenient start(QIODevice::OpenMode) method. Move the implementation of QProcess::start() to QProcess::open() unifying the QProcess api with other QIODevice subclasses. Change-Id: Id1af57da05f750fe8d526d391589c05ee8037bca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> :040000 040000 2f99dd3dcb60341f3f38579817e7330b4985b403 e8de1e13df369d73c666a945122d136179e20ca2 M src :040000 040000 7c3e4c3a238f298dd14846f8ca390698dac6ecb6 da8bb58d5563333c5a807000f4132470883fa160 M tests
Before this commit "all works".
Attachments
Issue Links
- relates to
-
QTCREATORBUG-12096 Debugging in Qt Creator 3.1.0 does not work (GDB on linux)
- Closed
-
QTBUG-32284 Binary compatibility with QProcess::open and QLocalSocket::open's new override in Qt 5.1
- Closed
-
QTCREATORBUG-11733 Breakpoints are ignored in qt creator 3.0.1
- Closed
-
QTCREATORBUG-14738 Debug in console hangs forever
- Closed