unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Daniel Colascione <dancol@dancol.org>
Cc: lekktu@gmail.com, eggert@cs.ucla.edu, monnier@IRO.UMontreal.CA,
	emacs-devel@gnu.org
Subject: Re: C backtraces for Emacs
Date: Thu, 23 Aug 2012 19:55:10 +0300	[thread overview]
Message-ID: <83a9xla6q9.fsf@gnu.org> (raw)
In-Reply-To: <50357BE8.8040302@dancol.org>

> Date: Wed, 22 Aug 2012 17:40:08 -0700
> From: Daniel Colascione <dancol@dancol.org>
> CC: Paul Eggert <eggert@cs.ucla.edu>, lekktu@gmail.com, 
>  monnier@IRO.UMontreal.CA, emacs-devel@gnu.org
> 
> You can use the StackWalk64 function from dbghelp.dll.

Will that work with GCC-compiled programs and DLLs?  Isn't dbghelp.dll
VC-specific?  If it doesn't produce addresses that can be plugged into
GDB, then it's not good, because any meaningful debugging after the
assertion violation will have to be with GDB.

Also, dbghelp.dll seems to need to be installed separately, and MinGW
doesn't provide its import library, so we cannot link against it by
default.  Did I miss something?

Anyway, if this is workable, patches to use it are welcome.

> By the way: when we assert, we should kill Emacs using RaiseFailFastException.
> This function produces a nice WER (Windows Error Reporting) dialog and bypasses
> a lot of layers of exception handling machinery that would ordinarily run in
> userspace --- that is, with RaiseFailFastException, fewer things can go wrong.
> abort() under Windows actually tried to run global destructors, send messages to
> loaded DLLs about pending process termination, and a bunch of other things. RFFE
> is much more reliable. On systems without RFFE, plain old RaiseException is fine
> too, and RaiseException is present on all supported Windows versions.

Emacs overrides 'abort' with a custom function that calls our own
abort dialog.  So I don't think the problems with the standard 'abort'
function are relevant to Emacs.



  reply	other threads:[~2012-08-23 16:55 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-17 23:48 inlinable functions instead of macros Stefan Monnier
2012-08-17 23:59 ` Paul Eggert
2012-08-18 22:15   ` Daniel Colascione
2012-08-18 22:55     ` John Yates
2012-08-19  4:22       ` Richard Stallman
2012-08-21 17:50   ` Stefan Monnier
2012-08-22  9:24     ` C backtraces for Emacs Paul Eggert
2012-08-22 16:01       ` Eli Zaretskii
2012-08-22 16:39         ` Paul Eggert
2012-08-23  0:40         ` Daniel Colascione
2012-08-23 16:55           ` Eli Zaretskii [this message]
2012-08-24 10:48       ` Paul Eggert
2012-08-25  4:41         ` Paul Eggert
2012-08-25  5:57           ` Eli Zaretskii
2012-08-22  9:28     ` inlinable functions instead of macros Paul Eggert
2012-08-22  9:48       ` Andreas Schwab
2012-08-22 14:31       ` Stefan Monnier
2012-08-24 21:37         ` Paul Eggert
2012-08-25  1:38           ` Tom Tromey
2012-08-25  2:58             ` Paul Eggert
2012-08-25  5:35               ` Eli Zaretskii
2012-08-25 20:13                 ` Tom Tromey
2012-08-26  4:42                   ` Paul Eggert
2012-08-25  2:05           ` Stefan Monnier
2012-08-26  5:31             ` Paul Eggert
2012-08-22 16:03       ` Eli Zaretskii
2012-08-18 19:08 ` Richard Stallman
2012-08-18 20:57   ` Paul Eggert
2012-08-18 21:03     ` Eli Zaretskii
2012-08-18 21:31       ` Paul Eggert
2012-08-19  2:45         ` Eli Zaretskii
2012-08-18 21:14   ` Óscar Fuentes
2012-08-19 17:28 ` Florian Weimer
2012-08-20 20:38 ` Sam Steingold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83a9xla6q9.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dancol@dancol.org \
    --cc=eggert@cs.ucla.edu \
    --cc=emacs-devel@gnu.org \
    --cc=lekktu@gmail.com \
    --cc=monnier@IRO.UMontreal.CA \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).