I can get every chapter to run, except for the last. It starts downloading terrain from NASA. The window will show up. But then, almost immediately, it crashes. I noticed some SIGPWR and SIGXCPU signals being raised right before it crashes. SIGPWR I have no idea about. SIGXCPU means it exceeded the allowed CPU time, but the CPU usage limit is infinite. (I read somewhere that Mono uses SIGXCPU internally, so it doesn't actually mean that.)
For some odd reason, it doesn't crash if I run it in debug mode. (It just runs really, REALLY slow.) Since it won't crash that way, I can't step through the code and find out where the issue is myself. The code was compiled with MonoDevelop 3.0.3.2, which is the standard version you get with Ubuntu. Mono is also the standard version.
I also tried running mono with --trace turned on, but it never produced an actual window or crashed after half an hour, so I gave up.
Here's some info I collected. Let me know if anything else is needed.
Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-5ubuntu1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
strace output, near the end:
futex(0x8f0cc0, FUTEX_WAIT_PRIVATE, 2, NULL) = ? ERESTARTSYS (To be restarted)
--- SIGPWR (Power failure) @ 0 (0) ---
futex(0x926fc0, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigsuspend(~[INT QUIT ABRT TERM XCPU RTMIN RT_1]) = ? ERESTARTNOHAND (To be restarted)
--- SIGXCPU (CPU time limit exceeded) @ 0 (0) ---
rt_sigreturn(0x7f8a9fda5740) = -1 EINTR (Interrupted system call)
futex(0x926fc0, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigreturn(0x926fc0) = 202
futex(0x8f0cc0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x8f0cc0, FUTEX_WAKE_PRIVATE, 1) = 0
getpid() = 7710
getpid() = 7710
getpid() = 7710
(getpid repeated about 100 more times...)
Stacktrace:
Native stacktrace:
getpid() = 7710
getpid() = 7710
getpid() = 7710
getpid() = 7710
getpid() = 7710
getpid() = 7710
getpid() = 7710
getpid() = 7710
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)