Commit Graph

62 Commits

Author SHA1 Message Date
Jonathan G Rennison
da07c8ce51 Crash log: Move GDB/LLDB logging to its own section 2023-06-12 18:38:27 +01:00
Jonathan G Rennison
dd57fc6ecf Unix crash log: Generalise crash log fault handling to all sections 2023-06-12 18:34:37 +01:00
Jonathan G Rennison
ac2f9a21e8 Move upstream saveload to src/saveload/, move jgrpp saveload to src/sl/
Leave afterload in src/saveload/
2023-06-08 00:01:40 +01:00
Jonathan G Rennison
cfb0d366f3 Unix: Trigger crash log handler on receiving SIGQUIT 2023-04-02 01:07:54 +01:00
Jonathan G Rennison
97acdfaa05 Crashlog: Unix: Use dladdr1 for symbol offset for addr2line
Subtract 1 from offset given to addr2line
2023-02-20 23:42:55 +00:00
Jonathan G Rennison
5cc56a6145 Crashlog: Limit iterations of calls to bfd_find_inliner_info 2022-10-08 19:56:16 +01:00
Jonathan G Rennison
e64427d034 Crashlog: Unix: Add BFD inline info support 2022-09-04 22:01:23 +01:00
Jonathan G Rennison
3d39e439f6 Unix: Use _exit instead of exit on execvp failure in crashlog 2022-09-04 20:58:28 +01:00
Jonathan G Rennison
0811990d4a Unix: Try using addr2line for crash log backtrace symbol resolution 2022-09-04 19:41:05 +01:00
Jonathan G Rennison
1518e4621b Fix unused function warning in crash logger on Emscripten 2022-06-05 16:10:15 +01:00
Jonathan G Rennison
220390ed3e Crashlog: Support gdb read when /dev/null is missing 2022-05-31 22:58:16 +01:00
Jonathan G Rennison
d83f0d0cda Crashlog: Use a temp file instead of a pipe to read from gdb/lldb 2022-05-31 22:01:52 +01:00
Jonathan G Rennison
4a0fa0cc75 Crashlog: Do not try to read from other executables if /dev/null is missing 2022-05-31 21:38:02 +01:00
Jonathan G Rennison
4543803823 Crash log: Increase crash log length limit on Unix
Allocate buffer using mmap if possible
2021-12-06 18:58:19 +00:00
Jonathan G Rennison
24fdc8331b Add CheckCaches mode to emit a log/save/screenshot on detected issue 2021-10-03 23:57:27 +01:00
Jonathan G Rennison
5e14b54a0c Merge branch 'master' into jgrpp 2021-04-05 17:51:45 +01:00
Michael Lutz
13011e00c6 Fix #8860: [Win32] Crashlog window wasn't reliably shown for crashes not on the main thread. 2021-03-13 22:09:05 +01:00
Jonathan G Rennison
610f8b9eca Crashlog: Unix: Fix getting symbols using BFD 2020-06-30 23:53:51 +01:00
Jonathan G Rennison
cbdd9f84d8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/console_gui.cpp
#	src/lang/korean.txt
#	src/video/sdl2_v.cpp
#	src/video/sdl2_v.h
#	src/window.cpp
#	src/window_gui.h
2019-11-12 18:43:10 +00:00
S. D. Cloudt
13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Jonathan G Rennison
6c21c93192 Add command line switch -Z to write detailed version information 2019-10-08 00:05:44 +01:00
Jonathan G Rennison
459a49cb24 Add flags for mismatch type to client desync log 2019-08-20 22:52:03 +01:00
Jonathan G Rennison
97baff6fd8 Add client desync log to server desync log output 2019-05-23 22:53:17 +01:00
Jonathan G Rennison
fa55a1c002 Output a log, savegame and screenshot on desync events 2019-05-18 10:17:59 +01:00
Jonathan G Rennison
24458e9990 Add various missing override specifiers 2019-04-28 12:24:40 +01:00
Jonathan G Rennison
85c8f4baca Merge branch 'crashlog_improvements' into jgrpp
# Conflicts:
#	src/os/macosx/crashlog_osx.cpp
2019-04-23 19:51:09 +01:00
Jonathan G Rennison
145fee04fa Add sigaltstack support to Unix crashlog 2019-04-23 18:41:20 +01:00
Jonathan G Rennison
674732cd68 Merge: Codechange: Use null pointer literal instead of the NULL macro 2019-04-11 18:14:13 +01:00
Henry Wilson
7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00
Jonathan G Rennison
d5ee9d34da Merge branch 'cpp-11' into crashlog_improvements
# Conflicts:
#	Makefile.src.in
#	projects/determineversion.vbs
#	source.list
#	src/crashlog.cpp
#	src/misc.cpp
#	src/os/unix/crashlog_unix.cpp
#	src/os/windows/crashlog_win.cpp
#	src/rev.h
#	src/thread/thread.h
#	src/thread/thread_morphos.cpp
#	src/thread/thread_none.cpp
#	src/thread/thread_os2.cpp
#	src/thread/thread_pthread.cpp
#	src/thread/thread_win32.cpp
2019-04-09 19:21:39 +01:00
Jonathan G Rennison
ba34ec7ade Merge branch 'master' into jgrpp
Replace build and refit, and group collapse implementations
Fix template creation build and refit

# Conflicts:
#	Makefile.bundle.in
#	config.lib
#	src/animated_tile.cpp
#	src/blitter/32bpp_anim.hpp
#	src/blitter/32bpp_base.hpp
#	src/blitter/8bpp_base.hpp
#	src/blitter/null.hpp
#	src/build_vehicle_gui.cpp
#	src/command.cpp
#	src/command_func.h
#	src/console_gui.cpp
#	src/core/smallstack_type.hpp
#	src/date.cpp
#	src/debug.cpp
#	src/genworld_gui.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/lang/korean.txt
#	src/linkgraph/linkgraph_gui.h
#	src/main_gui.cpp
#	src/misc_gui.cpp
#	src/network/core/game.h
#	src/network/core/packet.cpp
#	src/network/core/udp.cpp
#	src/network/core/udp.h
#	src/network/network_content.cpp
#	src/network/network_type.h
#	src/network/network_udp.cpp
#	src/newgrf_house.h
#	src/openttd.cpp
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/os/unix/crashlog_unix.cpp
#	src/os/windows/crashlog_win.cpp
#	src/osk_gui.cpp
#	src/pathfinder/opf/opf_ship.cpp
#	src/rail_cmd.cpp
#	src/rail_gui.cpp
#	src/saveload/saveload.cpp
#	src/settings.cpp
#	src/settings_gui.cpp
#	src/smallmap_gui.h
#	src/station_base.h
#	src/station_cmd.cpp
#	src/table/gameopt_settings.ini
#	src/table/newgrf_debug_data.h
#	src/table/settings.ini
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/train_gui.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/vehiclelist.cpp
#	src/viewport.cpp
#	src/widgets/dropdown.cpp
#	src/window_gui.h
2019-03-27 18:12:04 +00:00
Henry Wilson
af7d9020a1 Codechange: Use override specifer for overriding member declarations
This is a C++11 feature that allows the compiler to check that a virtual
member declaration overrides a base-class member with the same signature.

Also src/blitter/32bpp_anim_sse4.hpp +38 is no longer erroneously marked
as virtual despite being a template.
2019-03-24 16:10:04 +01:00
Jonathan G Rennison
fd9a2e680c Fix using crash abort reason string as printf format string 2017-08-12 00:57:54 +01:00
Jonathan G Rennison
3271d69bda Enable crashlogs for emergency or missing NewGRF savegames, in dev mode.
Factor out common checks for emergency and missing NewGRFs.
2017-06-22 19:30:37 +01:00
Jonathan G Rennison
62631cba02 Attempt to log distro name/version in Unix crashlog.
Factor out fork/execve/read stdout code into own function.
2016-06-12 20:58:52 +01:00
Jonathan G Rennison
8d078acb4e Log registers and fault instruction in Unix crashlog. 2016-06-12 19:34:06 +01:00
Jonathan G Rennison
abbc960e96 Linux crashlog: Use sigaction to get more info on fatal signals. 2016-06-10 23:39:26 +01:00
Jonathan G Rennison
c949ab72e4 Close read end of pipe after reading in gdb stack trace mode. 2016-03-10 19:40:20 +00:00
Jonathan G Rennison
a609439d98 Add support for enhanced crash log stacktraces using gdb on Linux.
This attempts to use gdb to attach to the current process and print
a full backtrace.
2016-03-10 00:14:26 +00:00
Jonathan G Rennison
cbc35e8aae Try to make scope info logging more robust.
Add checks for validity of Vehicle ptrs in scope_dumper::VehicleInfo.
In Unix mode, try to handle SIGSEGVs when dumping scope info.
2016-02-25 19:21:06 +00:00
Jonathan G Rennison
eaf9aa6571 Unix crash log: handle SIGSEGVs while backtracing. Add documentation. 2015-09-09 18:28:03 +01:00
Jonathan G Rennison
3a093c4b63 Use libbfd as a fallback for backtrace symbol lookup on MinGW.
This will try to demangle.
If bfd_find_nearest_line returns a file name but nothing else
(debugging info is turned off), scan the symbol table for the previous
symbol and use it if it looks OKish.
2015-09-09 02:14:06 +01:00
Jonathan G Rennison
5b755050b8 Use libbfd on Unix to get more symbols, line numbers, etc. for backtraces. 2015-09-09 00:08:21 +01:00
Jonathan G Rennison
387bf403da GCC/Unix: Try to demangle C++ function names in crashlog stack trace.
Change format of stack trace lines to improve readability.
2015-09-08 00:49:34 +01:00
rubidium
0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
rubidium
2be4215f43 (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
alberth
a825b4fa5f (svn r20266) -Doc: Mostly typo fixes, a few doxygen-related improvements. 2010-07-31 21:02:56 +00:00
alberth
1743c86610 (svn r20266) -Doc: Mostly typo fixes, a few doxygen-related improvements. 2010-07-31 21:02:56 +00:00
rubidium
2de9e2d16b (svn r19853) -Fix [FS#3840]: revert r19781 and apply a more sensible version with the same effect 2010-05-18 21:17:25 +00:00
rubidium
0a34d95374 (svn r19853) -Fix [FS#3840]: revert r19781 and apply a more sensible version with the same effect 2010-05-18 21:17:25 +00:00