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

@@ -1,38 +0,0 @@
#!./nhlua
-- NetHack 3.7 nhcrashreport.lua $NHDT-Date: 1693083824 2023/08/26 21:03:44 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.0 $
-- Copyright (c) 2023 Kenneth Lorber
-- NetHack may be freely redistributed. See license for details.
-- Call with URL then field value pairs. Opens a new browser window
-- to: URL?field=value+field=value.....
-- This program encodes the values; fieldnames don't require encoding.
--
-- Should be installed in the playground.
----
-- from
-- https://github.com/daurnimator/lua-http/blob/master/http/util.lua
-- Encodes a character as a percent encoded string
local function char_to_pchar(c)
return string.format("%%%02X", c:byte(1,1))
end
-- encodeURIComponent escapes all characters except the following: alphabetic, decimal digits, - _ . ! ~ * ' ( )
local function encodeURIComponent(str)
return (str:gsub("[^%w%-_%.%!%~%*%'%(%)]", char_to_pchar))
end
----
function un20(str)
return str:gsub("%%20","+")
end
url = table.remove(arg,1) .. "?cos=1"; -- Start the query string and set mode
while #arg > 0 do
local field = table.remove(arg,1)
local value = table.remove(arg,1)
url = url .. "&" .. field .. "=" .. un20(encodeURIComponent(value))
end
--print("url='"..url.."'")
cmd = '/usr/bin/xdg-open "'..url..'"'
os.execute(cmd)
os.exit()