This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug python/17837] New: python-injected silent breakpoints broken since 1a853c52


https://sourceware.org/bugzilla/show_bug.cgi?id=17837

            Bug ID: 17837
           Summary: python-injected silent breakpoints broken since
                    1a853c52
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: critical
          Priority: P2
         Component: python
          Assignee: unassigned at sourceware dot org
          Reporter: jan.kiszka at siemens dot com

I've stumbled over a regression of gdb since commit 1a853c52 (make "permanent
breakpoints" per location and disableable). My gdb python scripts [1] that load
Linux kernel module symbols as the target loads the modules now fail.

The involved command is lx-symbols [2]. It installs a silent breakpoint on a
kernel function that is called when a module is loaded. Before 1a853c52, the
python callback was normally invoked and the target continued to run. Since
af48d08f (1a853c52 is not testable), the int3 instruction (I'm testing with
x86) is left in the target, and garbage instructions are executed, causing a
kernel oops. The breakpoint is apparently not properly skipped (remove,
single-step, re-insert) when resuming the target on return from
LoadModuleBreakpoint.stop().

I can provide more details on how to set up a reproduction case but I
would only gather them when desired as that is not straightforward.

[1] https://lkml.org/lkml/2014/11/20/531
[2]
http://git.kiszka.org/?p=linux.git;a=blob;f=scripts/gdb/linux/symbols.py;h=bf05e451c58666add299061046bf1ceb9e82f4ef;hb=d92098e7cf60d31ccd025e56d20c23917ccd0819

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]