"correct" stack trace in gdb

egor duda deo@logos-m.ru
Wed Apr 25 23:21:00 GMT 2001


Hi!

  several people complained in mailing list recently that when they're
"error_start"ing gdb or dumper to analyze crashes, they see "incorrect"
stack traces -- without the frame of function which had actually crashed.
this patch is supposed to fix this problem, but it has a drawback of
stripping handle_exception() and try_to_debug() frames from stack
trace.

2001-04-24  Egor Duda  <deo@logos-m.ru>

        * exceptions.cc (try_to_debug): store exception context in shared
        memory area. Create signalling event before starting debugger.
        (handle_exceptions): Pass exception context to debugger.
        * winsup.h (try_to_debug): Change prototype.
        * include/sys/cygwin.h: Add structure for passing data to debugger.

2001-04-24  Egor Duda  <deo@logos-m.ru>

        * dumper.cc (dumper::collect_process_information): Change name of
        signalling event to match with cygwin1.dll
        (dumper::write_core_dump): Get exception context from shared
        memory area and store it as context of appropriate thread.

2001-04-24  Egor Duda  <deo@logos-m.ru>

        * win32-nat.c (struct thread_info_struct): Add exception context
        information.
        (get_thread_context): New function.
        (do_child_fetch_inferior_registers): Use it.
        (do_child_store_inferior_registers): Ditto.
        (get_exception_context_info): Get exception context from shared
        memory area.
        (handle_exception): Fix typo.
        (get_child_debug_event): Store pid of current process. Get exception
        context from debuggee.

egor.            mailto:deo@logos-m.ru icq 5165414 fidonet 2:5020/496.19
exception-on-stack-gdb.ChangeLog
exception-on-stack-gdb.diff
exception-on-stack-winsup-cygwin.ChangeLog
exception-on-stack-winsup-cygwin.diff
exception-on-stack-winsup-utils.ChangeLog
exception-on-stack-winsup-utils.diff

-------------- next part --------------
2001-04-24  Egor Duda  <deo@logos-m.ru>

	* win32-nat.c (struct thread_info_struct): Add exception context
	information.
	(get_thread_context): New function.
	(do_child_fetch_inferior_registers): Use it.
	(do_child_store_inferior_registers): Ditto.
	(get_exception_context_info): Get exception context from shared
	memory area.
	(handle_exception): Fix typo.
	(get_child_debug_event): Store pid of current process. Get exception
	context from debuggee.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: exception-on-stack-gdb.diff
Type: text/x-diff
Size: 3716 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20010425/de9ac3c3/attachment.bin>
-------------- next part --------------
2001-04-24  Egor Duda  <deo@logos-m.ru>

	* exceptions.cc (try_to_debug): store exception context in shared
	memory area. Create signalling event before starting debugger.
	(handle_exceptions): Pass exception context to debugger.
	* winsup.h (try_to_debug): Change prototype.
	* include/sys/cygwin.h: Add structure for passing data to debugger.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: exception-on-stack-winsup-cygwin.diff
Type: text/x-diff
Size: 3778 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20010425/de9ac3c3/attachment-0001.bin>
-------------- next part --------------
2001-04-24  Egor Duda  <deo@logos-m.ru>

	* dumper.cc (dumper::collect_process_information): Change name of
	signalling event to match with cygwin1.dll
	(dumper::write_core_dump): Get exception context from shared
	memory area and store it as context of appropriate thread.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: exception-on-stack-winsup-utils.diff
Type: text/x-diff
Size: 2021 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20010425/de9ac3c3/attachment-0002.bin>


More information about the Cygwin-patches mailing list