add CRASHREPORT directly to browser

add CRASHREPORT for Windows
add ^P info to report (via DUMPLOG)

new options: crash_email, crash_name, crash_urlmax
new game command: #bugreport
new config option: CRASHREPORT_EXEC_NOSTDERR
new command line option: --bidshow

deleted helper scripts:
    NetHackCrashReport.Javascript
    nhcrashreport.lua

misc:
    update CRASHREPORTURL (will need to be updated before release)
    update bitrot in winchain
    winchain for Windows
    add missing synch_wait for NetHackW --showpaths
    add PANICTRACE (and CRASHREPORT) in mdlib.c:build_opts

missing:
    packaging (Windows needs the pdb file)
    no testing with MSVC command line build

port status:
    linux: working, but glibc's backtrace doesn't show static functions
    Windows VS: working.  pdb file is large - looking into options
    MacOS: working
    msdos: not supported
    VMS: not supported
    MSVC: planned, but not attempted
    MSYS2: working, but libbacktrace not showing symbols (yet?)
This commit is contained in:
nhkeni
2024-02-06 18:33:59 -05:00
parent cf3cbcf832
commit dbe5c98dca
37 changed files with 1001 additions and 315 deletions

View File

@@ -14,8 +14,9 @@ enum wp_ids { wp_tty = 1, wp_X11, wp_Qt, wp_mswin, wp_curses,
wp_chainin, wp_chainout, wp_safestartup, wp_shim,
wp_hup, wp_guistubs, wp_ttystubs,
#ifdef OUTDATED_STUFF
, wp_mac, wp_Gem, wp_Gnome, wp_amii, wp_amiv
wp_mac, wp_Gem, wp_Gnome, wp_amii, wp_amiv,
#endif
wp_trace // XXX do we need this? should chainin/out get an id? TBD
};
/* NB: this MUST match chain_procs below */
@@ -107,6 +108,7 @@ extern
/*
* If you wish to only support one window system and not use procedure
* pointers, add the appropriate #ifdef below.
* XXX which is what?
*/
#define init_nhwindows (*windowprocs.win_init_nhwindows)
@@ -359,7 +361,6 @@ struct chain_procs {
void (*win_end_menu)(CARGS, winid, const char *);
int (*win_select_menu)(CARGS, winid, int, MENU_ITEM_P **);
char (*win_message_menu)(CARGS, char, int, const char *);
void (*win_update_inventory)(CARGS, int);
void (*win_mark_synch)(CARGS);
void (*win_wait_synch)(CARGS);
#ifdef CLIPPING
@@ -407,6 +408,8 @@ struct chain_procs {
void (*win_status_update)(CARGS, int, genericptr_t, int, int, int,
unsigned long *);
boolean (*win_can_suspend)(CARGS);
void (*win_update_inventory)(CARGS, int);
win_request_info *(*win_ctrl_nhwindow)(CARGS, winid, int, win_request_info *);
};
#endif /* WINCHAIN */