Review Request 121527: backport the latest gdb fixes from master to 4.7

Aleix Pol Gonzalez aleixpol at kde.org
Thu Apr 23 23:40:33 UTC 2015



> On April 23, 2015, 8:48 p.m., Kevin Funk wrote:
> > I'm unsure about this patch -- should it be merged to 4.7? Opinions?

I don't really mind having a working 4.7 branch, as long as it stays mergeable.


- Aleix


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121527/#review79406
-----------------------------------------------------------


On Dec. 17, 2014, 7:34 p.m., Andreas Roth wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121527/
> -----------------------------------------------------------
> 
> (Updated Dec. 17, 2014, 7: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
> -----
> 
>   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/20150423/88268fb8/attachment-0001.html>


More information about the KDevelop-devel mailing list