Review Request 121527: backport the latest gdb fixes from master to 4.7
Andreas Roth
aroth at arsoft-online.com
Wed Dec 17 18:34:21 UTC 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121527/
-----------------------------------------------------------
(Updated Dec. 17, 2014, 6:34 p.m.)
Review request for KDevelop.
Repository: kdevelop
Description
-------
I backported all the gdb related changes from master to the 4.7 branch. This also includes fixes to restore the gdb unit tests. Many thanks to Nikolai who did a great job there.
My entire git tree is available at https://github.com/aroth-arsoft/kdevelop/tree/4.7-gdb-fixes-from-master
gdb: do not use addCommandToFront in DisassembleWidget
gdb: DebugSession: add a testing mode for unit tests
Attempt to provide a cleaner environment during unit tests, in particular do
not read the user's .gdbinit files (those can mess up breakpoint counts etc.).
gdb: match structure more closely to the GDB/MI documentation and use cmd tokens
In particular, split Result and Async records into separate categories to mirror
the GDB documentation and account for the reality that async records can come
at any time according to the GDB doc, and need to be processed in any case.
These changes should help make the debugger more robust in the long term.
fix merge error
gdb: always process async notifications from GDB
The GDB documentation says that async notifications may arrive at any time,
even when all commands have returned a result.
gdb: remove magic constants in GDBMI::StreamRecord
gdb: remove flaky DebugSession::parseStreamRecord
gdb: add braces around multi-line if statement
gdb: examineCoreFile: update IDebugSession::state() to match unit tests
gdb: update session state more robustly based on async notifications
This is a first step towards picking up changes of the running state that are
caused by user commands to GDB.
gdb: make testIgnoreHitsBreakpoint more robust to timing issues
Instead of waiting for a debugger state, wait for a combination of debugger
state + breakpoint hit-count. This ensures that the test does the right thing
even when an intermediate PausedState is encountered during program startup.
It also happens to verify that the breakpoint hitCount is updated correctly.
gdb: testManualAttach: fix timing
gdb: unit tests: make timing more robust in some tests
Wait explicitly until the debugger is idle, which should avoid accidentally
accepting an intermittent pause state; it also ensures that data reloading
has completed e.g. for the frame stack model.
gdb: unittests: remove unused WAIT_FOR_STATE_FAIL
gdb: source code formatting changes
test_gdb: remove code duplication in check whether ptrace attach is allowed
test_gdb: add missing gdb_script_empty
gdb: make loading of our Python pretty printers into gdb more robust
Instead of relying on a cmake-configured gdbinit that might end up being
moved around by the user, we add the Python path at the point where we also
determine the path to gdbinit.
REVIEW: 121464
gdb: do not crash when receiving thread-info responses with running threads
gdb can operate in a mode where gdb receives commands while the inferior (or
a subset of the threads of the inferior) is running.
REVIEW: 121465
gdb: quick fix for compile error on OSX
gdb: fix two compile errors that were missed in the previous commit
test_gdb: make more unit tests more robust to timing variances
gdb: ignore "library-loaded" async notifications
gdb: warn the user when a debug launch will kill a currently running debug session
REVIEW: 121469
correct signal/slot connections caused by using different parameter types
test_gdb: use Breakpoint::State, anticipating potential future API changes
Diffs (updated)
-----
debuggers/gdb/printers/CMakeLists.txt f772c8ad47bd012733f38669a28b83ffcf286fa2
debuggers/gdb/printers/gdbinit c82ac9790b0bc596a9783e093d46f15f2700408d
debuggers/gdb/unittests/gdb_script_empty PRE-CREATION
debuggers/gdb/unittests/gdbtest.h b9a961d6f3922076867f45d3af287e5addf6a56c
debuggers/gdb/unittests/gdbtest.cpp ef3cd4285420621cd1cea75f519c9349caca5e53
debuggers/gdb/variablecontroller.h f5ac8c12f2a2149ba747433d7f94501b3b2fe895
debuggers/gdb/variablecontroller.cpp 5198c09ec9f393cafe1d0737f72e4ba45d25a893
debuggers/gdb/DESIGN.txt ddefb700d8b38f923ee68816de04683e08ef66a3
debuggers/gdb/breakpointcontroller.h 1b8ae0e8d629047d9b7d2365b3ef89cd6a2ea35f
debuggers/gdb/breakpointcontroller.cpp 744e75061886b3b9cbb54344c846eac801f986e1
debuggers/gdb/debuggerplugin.h 0ec300a481b89c34572e530977ae531dc769179e
debuggers/gdb/debuggerplugin.cpp ca2bbafe18213da15cc262025715f19ad89d22a8
debuggers/gdb/debugjob.cpp 2807484b798d18778f5f9f203935cd72e6b1440a
debuggers/gdb/debugsession.h 7a1a3d98d62842fbf512825fcb1ab3407c9b35ab
debuggers/gdb/debugsession.cpp edc0d34473e99230db510457fd609a178bc8fa34
debuggers/gdb/disassemblewidget.cpp 91194ed7e69ff87ebdfbb5383c1b38939760d098
debuggers/gdb/gdb.h 31688cd91860ae0d2802c760fb54967024266854
debuggers/gdb/gdb.cpp 46420876149604a318caec7111f252dcc12b39b4
debuggers/gdb/gdbcommand.h e1ebc6988fb508a187d2775735c13b9123fcda04
debuggers/gdb/gdbcommand.cpp 67abbd87f1f0d10a84a45b3ee9f104c77ffe925b
debuggers/gdb/gdbcommandqueue.h 7d82f45a244d9fffb9b3a2ba5a82eaaa06f5c8d0
debuggers/gdb/gdbcommandqueue.cpp 801bc41e79f62a226de04cd1a91500c86a9cf1a3
debuggers/gdb/gdbframestackmodel.cpp e9e1fce3bd8059b5218e1d084419048ff4a37ea5
debuggers/gdb/gdbglobal.h ef31c027231abed9c917c7fcf8715ffb32ad0159
debuggers/gdb/gdblaunchconfig.cpp 720099894f48cb1676f538cd36482acb4fa9fd6d
debuggers/gdb/mi/gdbmi.h d5e92b8f0b3d989cbe529732fe3d6faf7a74172c
debuggers/gdb/mi/miparser.h 7096af0e7fdc9017fe9bd5127e69d6e59502221d
debuggers/gdb/mi/miparser.cpp 123c97ee9ecb3549ae0ee373a22c6cb9ed90a1a3
Diff: https://git.reviewboard.kde.org/r/121527/diff/
Testing
-------
GDB unit tests runs without any failure
Thanks,
Andreas Roth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20141217/e6620a33/attachment-0001.html>
More information about the KDevelop-devel
mailing list