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 breakpoints/21497] FreeBSD: infrun.c:5565: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed


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

--- Comment #4 from jhb at FreeBSD dot org ---
I have an old patch to try to fix a similar crash for kernels without LWP
events that still didn't work in my testing.  Rather than depending on a
global, I ended up using the ptid passed to fbsd_resume.  However, the patch
also avoided adding new threads until single stepping was disabled.  In
particular, I wanted to be sure I didn't "lose" the event from the new thread
(in case the new thread had just hit a breakpoint and thus needed to be
single-stepped across it).  Perhaps that is unnecessary as the new thread would
simply repeat the breakpoint though when it is resumed.

https://github.com/bsdjhb/gdb/compare/fbsd_single_step_thr

(That patch doesn't work for LWP events so would need reworking anyway, but it
sounds like I'd need to handle it for both cases now anyway which might
simplify the logic a bit.  For the non-LWP event case if I don't care about
reporting the event I can probably even just PT_SUSPEND the new LWP and ignore
it and later come back to it).

FYI, if you disable LWP events by hand in fbsd-nat.c do you still get the same
issue?

-- 
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]