Commit Graph
640 Commits
Author SHA1 Message Date
Glenn Maynard b491a6d702 error strings 2006-02-11 22:53:28 +00:00
Glenn Maynard f7fa4b07f1 update 2006-02-11 10:47:39 +00:00
Glenn Maynard 23dcc99781 Add automatic error reporting. This sends crashinfo.txt
over HTTP as a POST form.  This is intended to decrease the
amount of effort required to submit bug reports, reduce the
potential for human error, and increase the consistency of
the form of bug reports (always a crashinfo.txt, no wrapping
or RARring, not pasted into BTS text fields, and no forgetting
it entirely).

This offers less chance to fix the bug than a real BTS entry.
We can't interact with the user (since the submission is
anonymous and not tied to an email), so we can't get more
information about the problem or offer solutions; we can only
fix it based on the crashinfo.  This will result in noise, due
to crashes caused by drivers.

We don't want people to send bug reports accidentally, but we
also don't want to encourage cancelling the report.  This dialog
defaults to "view", so pressing enter neither sends the report
nor cancels.

We don't want people to modify crashinfo.txt before they send
it, since we want consistency.  (Data sent is not re-read from
crashinfo.txt; it's simply kept in memory.)  We also don't want
to give people the impression that changes in "view" will change
what's sent.  At the same time, it's convenient to have the
crashinfo "view" function load notepad.  So, crashinfo.txt is
marked read-only, so attempts to save over it in notepad will fail.

In this mode, we don't offer the option to load log.txt, or
point to a BTS.  This is intended to make bug submission as
simple as possible for casual users.  Keep the dialog simple
and to the point.

The id number that's displayed after a submission is intended
to be used as a reference; we can say "reproduce the crash,
submit the report and tell us what number is shown in the corner",
and easily locate the report.  It's intended to be ignorable by
the most users, so no attempt is made at explaining what it means.
(It should probably be grayed out, but I havn't dug into it yet
to figure out how to gray it while still allowing the text to get
focus, so it can be copied.)

We send over HTTP, on port 80.  This is probably the most likely
way to be able to send data out without any configuration.

(The localization support is incomplete.)
2006-02-11 10:45:24 +00:00
Glenn Maynard a6bd91b9d4 use WindowsDialogBox 2006-02-11 08:00:38 +00:00
Glenn Maynard d94c5912c8 also fixup (dur; goofed up a partial commit) 2006-02-11 07:54:26 +00:00
Glenn Maynard 4d2ba02c06 fixup 2006-02-11 07:53:21 +00:00
Glenn Maynard bcab631922 pull out MakeCrashReport call 2006-02-11 07:52:39 +00:00
Glenn Maynard 9cbc530b64 Add networking helpers for the crash handler.
Most of this will eventually be moved to arch, once I spend some more time
polishing the interface and implementing the BSD sockets version.
2006-02-11 07:49:52 +00:00
Glenn Maynard 7bf1364fb5 Add a couple small helpers for two types of Windows windows. (I
tried merging these, but it's not worth it; they're too simple
and a little too different for it to be worth it.)

(How does one unambiguously refer to a Windows window without
sounding silly?)
2006-02-11 06:53:21 +00:00
Glenn Maynard 7a1852ef2b these have their own newlines 2006-02-11 05:36:43 +00:00
Glenn Maynard 48e1266e19 add a line header; easier to read and search 2006-02-11 05:34:55 +00:00
Glenn Maynard b1f072479a This is read into a string; no need to send the null terminator. 2006-02-11 05:33:33 +00:00
Steve Checkoway 0955b5410b Cleanup. 2006-02-10 10:01:12 +00:00
Steve Checkoway 8e1f4254a7 Get thread backtrace context on i386. 2006-02-10 09:55:53 +00:00
Steve Checkoway bd614eed21 Simplify. 2006-02-10 09:42:37 +00:00
Steve Checkoway 5c5655b137 Check for NULL. 2006-02-10 09:41:42 +00:00
Steve Checkoway 3f199dbf2a Check all values returned from dictionaries. 2006-02-10 09:36:35 +00:00
Steve Checkoway dfa720254d dict -> properties 2006-02-10 09:21:39 +00:00
Steve Checkoway 7f097a9946 Document the API. 2006-02-10 09:21:20 +00:00
Steve Checkoway 69337c8e0f Follow the stricter API. 2006-02-10 08:54:22 +00:00
Steve Checkoway b1818e1831 Make API stricter so that a physical device cannot have logical devices of different types.
For example, if 15 joysticks already have IDs and an adaptor that has two logical joysticks is assigning IDs, it cannot have DEVICE_JOY16 for the first and DEVICE_PUMP1 for the second.
2006-02-10 08:54:07 +00:00
Glenn Maynard 92682e0ef0 move code 2006-02-10 04:25:50 +00:00
Glenn Maynard 13096dedf0 This isn't in crash conditions anymore, so we can reuse this. 2006-02-09 23:55:28 +00:00
Glenn Maynard 9899823297 cleanup 2006-02-09 23:53:42 +00:00
Glenn Maynard 8814b127c7 hFontMono is unused 2006-02-09 23:53:23 +00:00
Glenn Maynard e5b0c7321f cleanup 2006-02-09 23:53:22 +00:00
Glenn Maynard bea70df82c fix alignment 2006-02-09 23:41:54 +00:00
Glenn Maynard 2d75617c33 removes backtrace list and "reason" 2006-02-09 23:13:22 +00:00
Glenn Maynard 607a8e2e11 I've been hesitant to do this, but it's the next step in
making crash handling more consistent.  Move the crash
handling dialog into a new process, like the Unix handler
does.

 - We're allowed to operate normally; we have a new heap,
so allocations are safe.
 - Gzipping the VDI is easy now; we can simply use GunzipFile().

The only particularly ugly thing in this is the need to run
CrashGetModuleBaseName in the original process.  That's lame,
but straightforward.  It'd be better to use GetModuleFileNameEx,
but I didn't want to drag psapi.dll into this.

This may also make window hiding more reliable.  Previously,
we wrote the crashinfo, tried to hide the window, then showed
the dialog.  Hiding the window was risky and could hang or
crash again.  Now we can forcibly kill the process from the
child, if needed, and still be able to show a dialog.

This also removes the backtrace and "reason" displays from the
dialog.  Those weren't useful in practice; I always loaded the
crashinfo.txt and never used them, and they're intimidating to
casual users.
2006-02-09 23:11:31 +00:00
Glenn Maynard fa747fcbb4 cleanup 2006-02-09 08:28:20 +00:00
Chris Danford 02786346b8 use gamepads 2006-02-09 01:53:24 +00:00
Chris Danford 7546366890 add assert 2006-02-09 00:59:26 +00:00
Chris Danford 38d439c713 fix ugly headers when using large fonts 2006-02-08 22:20:15 +00:00
Glenn Maynard 994cdd256b cleanup 2006-02-08 05:28:22 +00:00
Glenn Maynard 7b1f5c173b missing license 2006-02-08 03:49:03 +00:00
Glenn Maynard fa1dec128f cleanup 2006-02-08 03:43:49 +00:00
Glenn Maynard 4b09a38d36 build fix 2006-02-08 03:39:57 +00:00
Steve Checkoway a65d13c6d1 class -> typedef set. 2006-02-07 08:29:36 +00:00
Chris Danford ddbe74e1e2 add GetMonitorAspectRatio 2006-02-07 04:39:48 +00:00
Chris Danford b46e53e27b make dialogs localizable
adjust control to fit longer text
2006-02-07 04:38:51 +00:00
Glenn Maynard 5db90ce71d cleanup 2006-02-07 02:55:29 +00:00
Steve Checkoway 799c1af1ab A tiny amount of work toward an x86 backtrace facility. 2006-02-06 01:18:04 +00:00
Steve Checkoway 2c6ce27743 Out of date comment. 2006-02-05 00:29:14 +00:00
Ben Anderson bb53c425b1 No, I really meant X11Helper::Win, not a local variable that's never again used. 2006-01-31 03:00:19 +00:00
Steve Checkoway 0175a59715 Give the user 3 choices. "File Bug Report" opens REPORT_BUG_URL and the crashinfo.txt. "Open crashinfo.txt" just opens crashinfo.txt. You can guess what "Quit" does. 2006-01-28 07:22:26 +00:00
Steve Checkoway eb7b96178b Fix memory leak. 2006-01-28 07:06:11 +00:00
Steve Checkoway 811f1cc0c0 Update. 2006-01-28 03:10:11 +00:00
Steve Checkoway 00429b8c9d Add license. 2006-01-27 10:33:07 +00:00
Steve Checkoway 9b9759d916 Remove hack for EMS. 2006-01-27 10:30:59 +00:00
Steve Checkoway 7b1140fed6 Some cleanup. Work around EMS auto mapping problem. 2006-01-27 09:25:27 +00:00