Commit Graph

114 Commits (7232b97fc855a786fa2871f23d24a6fe19ae120b)

Author SHA1 Message Date
cybersphinx 7b0316696e Add cast to fix compilation with -Werror. 2011-02-05 18:00:39 +01:00
Giel van Schijndel e7d17ecda0 exceptionhandler: print *exact* faulting instruction
Use the signal handler's `sigcontext` to find the exact stack frame and
instruction address where the fatal signal ocurred, then disassemble
those exact locations (rather than hoping the 4th frame is the offending
one).

Signed-off-by: Giel van Schijndel <giel@wz2100.net>
2011-02-05 16:47:34 +01:00
buginator c10886b7b1 Change (HANDLE)(HANDLE)hProcess to (HANDLE)hProcess 2011-01-01 14:17:16 -05:00
Cyp 16a1582aa5 Fixes ticket:2430 without breaking the cross compile.
Error   27      error C2664: 'BOOL (HANDLE,DWORD,PVOID,DWORD,PDWORD)' :
cannot convert parameter 1 from 'DWORD' to 'HANDLE'

Since it cannot convert (HANDLE)hProcess to a HANDLE, the obvious solution is to add a cast: (HANDLE)(HANDLE)hProcess.

Error   26      error C2664: 'BOOL (HANDLE,DWORD,PVOID,DWORD,PDWORD)' :
cannot convert parameter 2 from 'void *' to 'DWORD'
../../../../lib/exceptionhandler/exchndl.cpp: In function ‘BOOL IntelStackWalk(DWORD, void*, void*, _tagSTACKFRAME*, CONTEXT*, BOOL (*)(void*, const void*, void*, DWORD, DWORD*), void* (*)(void*, DWORD), DWORD (*)(void*, DWORD), DWORD (*)(void*, void*,
_tagADDRESS*))’:
../../../../lib/exceptionhandler/exchndl.cpp:599: error: invalid conversion from ‘long unsigned int’ to ‘const void*’

Since it needs a void *, no, I mean a DWORD, no, I mean a void *, the obvious solution is to add a cast: ...id *)(DWORD)(void *)(DWORD)(void *)StackFrame->AddrFrame.Offset
2010-12-23 13:06:13 +01:00
Cyp 76690bbc4b Try to fix the cross compile. 2010-12-23 03:14:32 +01:00
Cyp 0a064c2470 Fix GLee.cpp → GLee.c in Linux and Windows build scripts.
And LPTCSTR → LPCTSTR in some Windows file, apparently LPTCSTR wasn't similar enough for it to compile, closes ticket:2428.
2010-12-21 22:13:25 +01:00
Cyp 23d5dcd5dd Remove extern "C" {} from most places, due to longer being needed. 2010-12-21 17:20:48 +01:00
Cyp bdc7f9d72a Try to fix cross-compile errors. 2010-12-21 16:34:04 +01:00
Cyp 0c40449e37 Make Windows' ResetRPTDirectory function compile.
(According to ticket:2421.)
2010-12-20 02:51:28 +01:00
Cyp 180d0bb62a Try to fix one more Windows-specific build error. 2010-12-20 02:12:09 +01:00
Cyp 36484909d6 Try to fix Windows exception handler and makefiles. 2010-12-20 01:07:12 +01:00
Cyp 0646b37603 Rename *.c to *.cpp. 2010-12-16 23:28:56 +01:00
Cyp 2bcb709cf4 Move broken dependency hack out of most Makefile.am's, except the for the root. 2010-12-16 23:14:38 +01:00
Cyp bf38eb51ea Add branch switching hack to remaining Makefile.am files. 2010-12-06 00:19:30 +01:00
cybersphinx d6e2ad0c56 Put ifdefs around Linux-specific header/function.
Closes #2366.
(cherry picked from commit 2d4d2d807d98fd9cd3b49891faf0b34976330915)
2010-11-30 01:56:05 +01:00
cybersphinx b7cb308f30 Allow process to be traced for the crash handler.
Some distributions disallow this (newer Ubuntu for example), so the gdb call
didn't output anything useful. Based on a patch by Safety0ff.
(cherry picked from commit 023ea5b2cea6f57b6690ac7d25fd472aefc911eb)
2010-11-24 16:49:50 +01:00
buginator 341d4d3bf8 Use 'Warzone 2100 master' as the default directory, and the default crash handler (on windows) directory.
fixes ticket:2317
2010-11-14 22:30:45 -05:00
Cyp b59b089ca5 Merge remote branch 'origin/master' into newnet
Conflicts:
	lib/netplay/nettypes.c
	src/multibot.c
2010-07-30 22:51:33 +02:00
Buginator edb644a03b Fix (and add missing) headers to files.
2009  Warzone Resurrection Project -> 2010  Warzone 2100 Project

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@11298 4a71c877-e1ca-e34f-864e-861f7616d084
2010-07-28 18:58:33 +02:00
Cyp f0beca71cc Merge remote branch 'origin/master' into newnet
Conflicts:
	lib/netplay/netlog.c
	lib/netplay/netlog.h
	lib/netplay/netplay.c
	macosx/Warzone.xcodeproj/project.pbxproj
	macosx/configs/Warzone-All.xcconfig
	macosx/configs/Warzone-Debug.xcconfig
	src/multijoin.c
2010-07-10 17:02:39 +02:00
Christian Ohm 3c02124171 In our assert macros, raise(SIGTRAP) instead of assert().
Also ignore SIGTRAP, so no crashdump will be generated for it. Makes it
possible to continue after an assert while debugging. Closes #1940.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@11046 4a71c877-e1ca-e34f-864e-861f7616d084
2010-06-26 22:43:34 +02:00
Cyp d7db005f71 Merge remote branch 'origin/master' into newnet
Conflicts:
	.gitignore
	configure.ac
	data/base/images/intfac.img
	data/base/images/intfac5.png
	lib/netplay/makefile.win32
	lib/netplay/netlog.c
	lib/netplay/netplay.c
	lib/netplay/netplay.h
	lib/netplay/netplay.vcproj
	macosx/Warzone.xcodeproj/project.pbxproj
	macosx/configs/Warzone-All.xcconfig
	po/POTFILES.in
	src/hci.c
	src/intfac.h
	src/keybind.c
	src/multibot.c
	src/multiint.c
	src/multijoin.c
	src/multiplay.c
	src/multistruct.c
	src/multisync.c
	src/scriptai.c
2010-06-15 08:35:52 +02:00
Buginator 1c4c1cc5bd Fix exception handler to obey UAC on windows machines.
It will write the crash report file to CSIDL_PERSONAL (c:\Users\user name\Documents\logs\warzone2100.rpt)

*All* platforms will now always have --debug-file enable as a default. This will write the logs to <configdir>/logs/WZlog*.txt

When a user overrides the configdir, then we will try to use that directory instead of the default as well.

refs ticket:1759

2.3: r10532


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@10538 4a71c877-e1ca-e34f-864e-861f7616d084
2010-04-12 11:59:41 +02:00
Cyp 657fc9079c Merge remote branch 'origin/master' into newnet 2010-03-11 17:37:36 +01:00
Cyp d9a5af62ad Fix building on mac (should really work this time). Maybe fix building on windows, maybe not, no idea if it was the same issue. 2010-03-11 09:42:38 +01:00
Cyp 153712cb5e newnet: Clean up warnings, warning free build with -O2. Enable the same warnings for C and C++, where applicable. 2010-03-05 20:01:51 +01:00
Giel van Schijndel 74f4f8a1e2 Make sure that we definitly won't allocate memory while in the exception handler
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9905 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-20 20:50:23 +01:00
Giel van Schijndel 4bfa5e928d dumpinfo.cpp:
* Make sure that config.h is #included (for PACKAGE_DISTRIBUTOR)
 * addDumpInfo: don't (explicitly) convert the parameter to std::string
  - std::ostream already takes care of that ''if'' necessary (usually it isn't)
 * addDumpInfo: use a 24 hour clock (%H to strftime instead of %I)
  - more info in the same bytes!
 * sizeof instead of magic numbers

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9904 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-20 20:50:23 +01:00
Cyp 4651724689 Move #includes out of extern "C" blocks, make STATIC_ASSERT work in C++.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9737 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-09 20:28:16 +01:00
Cyp 275e260a89 Fix building with PD-ksh on BSD. Reports and some patches from brad0. (svn -r9444)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9445 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-09 20:27:39 +01:00
Christian Ohm b0c4e40934 Include files needed for win32 cross-building.
Building from tarball still doesn't work, since nsis wants the gmo files in the
build dir while they are in the source dir.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9146 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-09 20:04:34 +01:00
Christian Ohm b6fe392071 Add -Wdeclaration-after-statement to the default warnings.
Should help prevent breaking the build for people who have to use crappy
compilers. Exclude lib/exceptionhandler, that contains C99 non-Windows code in
places.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@9035 4a71c877-e1ca-e34f-864e-861f7616d084
2010-02-09 20:04:10 +01:00
Christian Ohm 55f12a5d52 Hurd build fixes.
Closes #969.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@8706 4a71c877-e1ca-e34f-864e-861f7616d084
2010-01-30 20:26:44 +01:00
Buginator 0aff0b46cf Add a new debug flag type, LOG_FATAL.
This is used to differentiate LOG_ERROR (which is a *non* fatal error, but a error none the less) and fatal errors which result in program termination with no *visible* output (on windows/macs) on our end because of the crappy GUI functions so we usually dump it to stderr.txt and there is no clue that the program had to exit for whatever reason.

Hopefully, this will be helpful to windows people so they can differentiate between *our* exit/abort routines, and crashes that occur in drivers which look exactly the same since they get dumped back to the desktop with no visible clue why.

LOG_FATAL is *always* on in both debug & release builds.

On LOG_FATAL debug lines, on windows, we now throw up a modal dialog box with the current error message.  At this time, this only happens when we have a error, and we use abort() right after the error, which makes it fatal.

That explains why this touches ~60 files :)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@8320 4a71c877-e1ca-e34f-864e-861f7616d084
2009-11-22 16:19:51 +01:00
Per Inge Mathisen 6a09d348af Make addDumpInfo() parameter const
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@8299 4a71c877-e1ca-e34f-864e-861f7616d084
2009-11-22 16:19:48 +01:00
Buginator 54a6690161 Make it more obvious as to what kind of build it was built from. (Debug or Release).
Fix a typo (regarding)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@8239 4a71c877-e1ca-e34f-864e-861f7616d084
2009-10-10 14:49:23 +02:00
Christian Ohm 9417ec60e1 Use _NSIG in the exceptionhandler if available. Fixes #818.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7971 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:07:04 +02:00
Christian Ohm 3c875545d7 Fix crashdump creation.
Was broken in r7850 (#716). I reverted r7850 and then fixed the
-Wdeclaration-after-statement warnings instead of poking around trying to find
the problem.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7968 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:07:04 +02:00
Guangcong Luo 89bdf5d8cc Apply patch #716 - make exceptionhandler.c C90-compliant - patch by stiv.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7850 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:31 +02:00
Buginator c349a34865 Add a timestamp to addDumpInfo().
Remove the separator bars in the report file

We now log, map name (for SP/MP), the language that is read from the config file, and if they are using a cheat.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7743 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:35 +02:00
Buginator 1ccb1487de Create a new function, addDumpInfo(), to be used to add custom information to the crash dump report file.
Currently, we query openAL & openGL vendor/version info.
This should give us more descriptive crash reports on the user's hardware.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7738 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:34 +02:00
Giel van Schijndel 1b11d622f1 Exceptionhandler: Remove signal descriptions for signals that are either non fatal or simply not handled by our signal handler
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7539 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:29 +02:00
Giel van Schijndel 9182f1161b Make the fact that we're stripping NUL chars more explicit (see r7437)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7496 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:23 +02:00
Buginator 9a3f1046be Fix windows crash dump report, by returning back a c_str() instead of a string.
Fixes ticket:519

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7476 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:21 +02:00
Freddie Witherden 18870edfd6 Revert r6921. The newline character on OS X is \n, only OS 9 used \r, which we do not target.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6922 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-30 16:10:59 +02:00
Giel van Schijndel 12eccf9d4c An end of line character is "\r" on the Mac
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6921 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-30 16:10:59 +02:00
Giel van Schijndel f179b6f092 Allow compiling and linking with lib/framework/stdio_ext.h and src/version.h from C++ code
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6920 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-30 16:10:59 +02:00
Dennis Schridde aac41748dc Bump copyright
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6617 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-10 18:01:48 +00:00
Dennis Schridde cbbc58d1e9 Move files which extend a c std library header to a filename of similar name
Extension functions dealing with ...
 * strings are in string_ext.h
 * stdio (namely printf variants) are in stdio_ext.h
 * math are in math_ext.h

These headers are no longer included by frame.h

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6613 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-10 17:23:09 +00:00
Giel van Schijndel 94cf481e0f Override operator<< for std::ostream (left operand) and PHYSFS_Version (right operand) instead of using a plain function to perform the version formatting
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6578 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-01 12:13:00 +00:00