This is the mail archive of the gdb-patches@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]

Re: RFC: fix bug with std::terminate handler


>>>>> "Pedro" == Pedro Alves <pedro@codesourcery.com> writes:

Tom> call_function_by_hand installs a momentary breakpoint on std::terminate,
Tom> and then deletes it later.  However, this can cause a double deletion of
Tom> the breakpoint.  In the bug, the called function is dlopen, which causes
Tom> gdb to enter solib_add, which calls breakpoint_re_set, deleting the
Tom> momentary breakpoint.

Pedro> Why doesn't stepping over "dlopen", with "(gdb) next" cause the
Pedro> same problem with step-resume breakpoints?

The step-resume breakpoints have type bp_step_resume, which are handled
specially by breakpoint_re_set_one.  The std::terminate breakpoint is
just a plain bp_breakpoint.

I suppose I could add a new bptype, though that seems rather heavy for
this.

If you have a particular approach you think would be best, I would be
happy to implement that.

Tom


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