There was also a forum post about this, see here.
So basically as soon as a crash happens, a crashlog is generated and send to the server. The links you posted describe precisely what the log consists of: (The following is cited from Automatic Crash Reporting for Developers — Syncthing documentation)
The report consists of the following:
-
One line containing the Syncthing version, exactly as reported by syncthing --version. A leading timestamp and log level may be present but is ignored.
-
Zero or more lines of plaintext data that is for human consumption only. The reports that Syncthing itself sends will have zero lines here, but one could include a report of what happened, log extracts, etc. here barring any privacy issues on the sender’s behalf.
-
A line beginning with the words Panic at followed by a timestamp in RFC3339 format.
-
The panic backtrace as printed / formatted by the Go runtime.
If you’re interested in what the “panic backtrace” contains: That is pretty much a list of all goroutine’s (similar to threads) and a list of all functions that they recently executed (or are currently executing), it’s used to “trace back” what a thread/routine was doing prior to the crash. These backtraces only contain code information and not data that is specific to your syncthing instance (at most, one could figure out what features you’re using/not using based on the trace).
They’re saved as a file in the syncthing config directory, but removed after a while. That’s also explained in the link above. Every crash report is send, unless reporting is disabled.