godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.83k stars 21.14k forks source link

Export that had, but no longer has, C# scripts fails #56758

Open Hawk777 opened 2 years ago

Hawk777 commented 2 years ago

Godot version

v3.4.2.stable.mono.official [45eaa2daf]

System information

Gentoo Linux x86-64

Issue description

$ ./linux 
Godot Engine v3.4.2.stable.mono.official.45eaa2daf - https://godotengine.org
OpenGL ES 2.0 Renderer: NVIDIA GeForce GTX 960/PCIe/SSE2
OpenGL ES Batching: ON

Mono: Log file is: '/home/<elided>/.local/share/godot/app_userdata/Test Project/mono/mono_logs/2022-01-13_08.47.52_8157.log'
ERROR: Failed to load one of the API assemblies.
   at: _load_api_assemblies (modules/mono/mono_gd/gd_mono.cpp:944)

=================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Native stacktrace:
=================================================================
    0xacfa3d - ./linux : 
    0xacfdc9 - ./linux : 
    0xac259f - ./linux : 
    0xad9a20 - ./linux : 
    0x7f1a8f32a120 - /lib64/libpthread.so.0 : 
    0xd7e016 - ./linux : _ZN6GDMono26initialize_load_assembliesEv
    0x2524a2f - ./linux : _ZN12ScriptServer14init_languagesEv
    0xd4cb30 - ./linux : _ZN4Main6setup2Em
    0xd51dd3 - ./linux : _ZN4Main5setupEPKciPPcb
    0x9f57a9 - ./linux : main
    0x7f1a8f0f05fd - /lib64/libc.so.6 : __libc_start_main
    0x9f6ede - ./linux : 

=================================================================
    Telemetry Dumper:
=================================================================
Pkilling 0x139751346927168x from 0x139752044447552x
Entering thread summarizer pause from 0x139752044447552x
Finished thread summarizer pause from 0x139752044447552x.
Failed to create breadcrumb file (null)/crash_hash_0x0
Could not exec mono-hang-watchdog, expected on path '/tmp/data_Test Project/Mono/etc/../bin/mono-hang-watchdog' (errno 2)

Waiting for dumping threads to resume

=================================================================
    External Debugger Dump:
=================================================================
[New LWP 8158]
[New LWP 8161]
[New LWP 8162]
[New LWP 8163]
[New LWP 8164]
[New LWP 8165]
[New LWP 8166]
warning: Could not load vsyscall page because no executable was specified
0x00007f1a8f1881b7 in ?? ()
  Id   Target Id              Frame 
* 1    LWP 8157 "linux"       0x00007f1a8f1881b7 in ?? ()
  2    LWP 8158 "linux"       0x00007f1a8f32c00a in ?? ()
  3    LWP 8161 "linux"       0x00007f1a8f32c00a in ?? ()
  4    LWP 8162 "linux"       0x00007f1a8f1836b5 in ?? ()
  5    LWP 8163 "linux"       0x00007f1a8f1836b5 in ?? ()
  6    LWP 8164 "linux"       0x00007f1a8f1b1b51 in ?? ()
  7    LWP 8165 "SGen worker" 0x00007f1a8f32c00a in ?? ()
  8    LWP 8166 "Finalizer"   0x00007f1a8f32c00a in ?? ()

Thread 8 (LWP 8166 "Finalizer"):
#0  0x00007f1a8f32c00a in ?? ()
#1  0x0000000000000001 in ?? ()
#2  0x00007f1a00000189 in ?? ()
#3  0x0000000003313b00 in ?? ()
#4  0x0000000000000000 in ?? ()

Thread 7 (LWP 8165 "SGen worker"):
#0  0x00007f1a8f32c00a in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 6 (LWP 8164 "linux"):
#0  0x00007f1a8f1b1b51 in ?? ()
#1  0x00000000068ca3c0 in ?? ()
#2  0x00007f1a65f23cc0 in ?? ()
#3  0x0000000500000000 in ?? ()
#4  0x00007f1a65f23d30 in ?? ()
#5  0x0000000000000000 in ?? ()

Thread 5 (LWP 8163 "linux"):
#0  0x00007f1a8f1836b5 in ?? ()
#1  0x0000001900000000 in ?? ()
#2  0x0000000066724d20 in ?? ()
#3  0x00007f1a66724c80 in ?? ()
#4  0x0000000000000000 in ?? ()

Thread 4 (LWP 8162 "linux"):
#0  0x00007f1a8f1836b5 in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 3 (LWP 8161 "linux"):
#0  0x00007f1a8f32c00a in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 2 (LWP 8158 "linux"):
#0  0x00007f1a8f32c00a in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 1 (LWP 8157 "linux"):
#0  0x00007f1a8f1881b7 in ?? ()
#1  0x0000000000000000 in ?? ()
[Inferior 1 (process 8157) detached]

=================================================================
    Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0xd7e016):0xd7e006  7e 55 d4 01 48 8d 3d 5c 53 d4 01 e8 3a ab b4 01  ~U..H.=\S...:...
0xd7e016  0f 0b 0f 1f 84 00 00 00 00 00 48 8d 0d 01 b9 d4  ..........H.....
0xd7e026  01 ba a3 03 00 00 48 8d 35 55 55 d4 01 48 8d 3d  ......H.5UU..H.=
0xd7e036  33 53 d4 01 e8 71 24 b5 01 e9 68 ff ff ff 0f 1f  3S...q$...h.....

=================================================================
    Managed Stacktrace:
=================================================================
=================================================================
Aborted

The log file named in mono_logs is empty. I considered whether this might be GH-32185 or GH-32980, but it didn’t seem like quite the same thing because the former is a crash in a different location and the latter reports a crash happening even in the absence of solution files, while here deleting the solution files fixes the problem (though I haven’t tried Android).

Steps to reproduce

  1. Create a basic project (just a button in a Node2D is sufficient).
  2. Attach a C# script.
  3. Detach the C# script.
  4. Delete the .cs file from the project.
  5. Attach a GDScript instead.
  6. Export the project for Linux/X11.

Note that this leaves the .csproj and .sln files lying around, even though there is no C# code in the project any more. Deleting those files and reloading the project makes the problem go away, though I don’t see any way to do that step inside the Godot editor itself. The HTML5 export fails with the same basic error, and again is fixed by removing the solution files.

Minimal reproduction project

test.zip

raulsntos commented 2 years ago

Can execute the exported binary with verbose stdout mode? ./linux -v

Hawk777 commented 2 years ago
$ ./linux -v
Godot Engine v3.4.2.stable.mono.official.45eaa2daf - https://godotengine.org
XInput: Refreshing devices.
XInput: No touch devices found.
Detecting GPUs, set DRI_PRIME in the environment to override GPU detection logic.
Only one GPU found, using default.
Failed loading custom cursor: left_ptr
Failed loading custom cursor: xterm
Failed loading custom cursor: hand2
Failed loading custom cursor: cross
Failed loading custom cursor: watch
Failed loading custom cursor: left_ptr_watch
Failed loading custom cursor: fleur
Failed loading custom cursor: hand1
Failed loading custom cursor: X_cursor
Failed loading custom cursor: sb_v_double_arrow
Failed loading custom cursor: sb_h_double_arrow
Failed loading custom cursor: size_bdiag
Failed loading custom cursor: size_fdiag
Failed loading custom cursor: hand1
Failed loading custom cursor: sb_v_double_arrow
Failed loading custom cursor: sb_h_double_arrow
Failed loading custom cursor: question_arrow
Using GLES2 video driver
OpenGL ES 2.0 Renderer: NVIDIA GeForce GTX 960/PCIe/SSE2
OpenGL ES Batching: ON
    OPTIONS
    max_join_item_commands 16
    colored_vertex_format_threshold 0.25
    batch_buffer_size 16384
    light_scissor_area_threshold 1
    item_reordering_lookahead 4
    light_max_join_items 32
    single_rect_fallback False
    debug_flash False
    diagnose_frame False
PulseAudio: context other
PulseAudio: context other
PulseAudio: context other
PulseAudio: context ready
PulseAudio: Detecting channels for device: alsa_output.pci-0000_00_1b.0.analog-stereo
PulseAudio: detected 2 output channels
PulseAudio: audio buffer frames: 512 calculated output latency: 11ms
JoypadLinux: udev enabled and loaded successfully.

Mono: Initializing module...
Mono JIT compiler version 6.12.0 ((no/5ce143a1)
Mono: Log file is: '/home/<elided>/.local/share/godot/app_userdata/Test Project/mono/mono_logs/2022-01-13_11.20.30_3302.log'
Mono: Runtime initialized
Mono: Loading assembly mscorlib...
Mono: Assembly mscorlib loaded from path: .mono/assemblies/Release/mscorlib.dll
Mono: Loading scripts domain...
Mono: Creating domain 'GodotEngine.Domain.Scripts'...
Mono: INITIALIZED
Mono: Loading assembly GodotSharp...
Mono: Failed to load Core API assembly
ERROR: Failed to load one of the API assemblies.
   at: _load_api_assemblies (modules/mono/mono_gd/gd_mono.cpp:944)

=================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Native stacktrace:
=================================================================
    0xacfa3d - ./linux : 
    0xacfdc9 - ./linux : 
    0xac259f - ./linux : 
    0xad9a20 - ./linux : 
    0x7f3e7a3db120 - /lib64/libpthread.so.0 : 
    0xd7e016 - ./linux : _ZN6GDMono26initialize_load_assembliesEv
    0x2524a2f - ./linux : _ZN12ScriptServer14init_languagesEv
    0xd4cb30 - ./linux : _ZN4Main6setup2Em
    0xd51dd3 - ./linux : _ZN4Main5setupEPKciPPcb
    0x9f57a9 - ./linux : main
    0x7f3e7a1a15fd - /lib64/libc.so.6 : __libc_start_main
    0x9f6ede - ./linux : 

=================================================================
    Telemetry Dumper:
=================================================================
Pkilling 0x139905633089088x from 0x139906311673664x
Entering thread summarizer pause from 0x139906311673664x
Finished thread summarizer pause from 0x139906311673664x.
Failed to create breadcrumb file (null)/crash_hash_0x0
Could not exec mono-hang-watchdog, expected on path '/tmp/data_Test Project/Mono/etc/../bin/mono-hang-watchdog' (errno 2)

Waiting for dumping threads to resume

=================================================================
    External Debugger Dump:
=================================================================
[New LWP 3303]
[New LWP 3311]
[New LWP 3312]
[New LWP 3313]
[New LWP 3314]
[New LWP 3315]
[New LWP 3316]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30  ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
  Id   Target Id                                      Frame 
* 1    Thread 0x7f3e7a025740 (LWP 3302) "linux"       0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
  2    Thread 0x7f3e6c706640 (LWP 3303) "linux"       0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
  3    Thread 0x7f3e68ba1640 (LWP 3311) "linux"       0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
  4    Thread 0x7f3e5323c640 (LWP 3312) "linux"       0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f3e5323bd30, rem=0x7f3e5323bd40) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
  5    Thread 0x7f3e529e3640 (LWP 3313) "linux"       0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
  6    Thread 0x7f3e521e2640 (LWP 3314) "linux"       0x00007f3e7a262b51 in __GI___select (nfds=5, readfds=0x7f3e521e1d30, writefds=0x0, exceptfds=0x0, timeout=0x7f3e521e1d20) at ../sysdeps/unix/sysv/linux/select.c:71
  7    Thread 0x7f3e50fff640 (LWP 3315) "SGen worker" 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
  8    Thread 0x7f3e518ff640 (LWP 3316) "Finalizer"   0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74

Thread 8 (Thread 0x7f3e518ff640 (LWP 3316) "Finalizer"):
#0  0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>) at ../sysdeps/nptl/futex-internal.c:123
#2  0x00007f3e7a3d939f in do_futex_wait (sem=sem@entry=0x3313b00, abstime=0x0, clockid=0) at /var/cache/portage/sys-libs/glibc-2.33-r7/work/glibc-2.33/nptl/sem_waitcommon.c:112
#3  0x00007f3e7a3d9438 in __new_sem_wait_slow64 (sem=0x3313b00, abstime=0x0, clockid=0) at /var/cache/portage/sys-libs/glibc-2.33-r7/work/glibc-2.33/nptl/sem_waitcommon.c:184
#4  0x0000000000b8bc18 in ?? ()
#5  0x0000000000c5e237 in ?? ()
#6  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e518ff640) at pthread_create.c:481
#7  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f3e50fff640 (LWP 3315) "SGen worker"):
#0  0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x332ac60, cond=0x332ac20) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0x332ac20, mutex=0x332ac60) at pthread_cond_wait.c:619
#4  0x0000000000cbff3b in ?? ()
#5  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e50fff640) at pthread_create.c:481
#6  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f3e521e2640 (LWP 3314) "linux"):
#0  0x00007f3e7a262b51 in __GI___select (nfds=5, readfds=0x7f3e521e1d30, writefds=0x0, exceptfds=0x0, timeout=0x7f3e521e1d20) at ../sysdeps/unix/sysv/linux/select.c:71
#1  0x0000000000d09075 in OS_X11::_wait_for_events() const ()
#2  0x0000000000d09214 in OS_X11::_poll_events_thread(void*) ()
#3  0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#4  0x000000000298b130 in ?? ()
#5  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e521e2640) at pthread_create.c:481
#6  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f3e529e3640 (LWP 3313) "linux"):
#0  0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
#1  0x00007f3e7a2393f3 in __GI___nanosleep (req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00007f3e7a2633f5 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#3  0x0000000000d14cd2 in JoypadLinux::monitor_joypads(udev*) ()
#4  0x0000000000d1508c in JoypadLinux::joy_thread_func(void*) ()
#5  0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#6  0x000000000298b130 in ?? ()
#7  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e529e3640) at pthread_create.c:481
#8  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f3e5323c640 (LWP 3312) "linux"):
#0  0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f3e5323bd30, rem=0x7f3e5323bd40) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
#1  0x00007f3e7a2393f3 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x0000000002875b9f in ?? ()
#3  0x00000000014bde46 in AudioDriverPulseAudio::thread_func(void*) ()
#4  0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#5  0x000000000298b130 in ?? ()
#6  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e5323c640) at pthread_create.c:481
#7  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f3e68ba1640 (LWP 3311) "linux"):
#0  0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f3e68cba0c0, cond=0x7f3e68cba0e8) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0x7f3e68cba0e8, mutex=0x7f3e68cba0c0) at pthread_cond_wait.c:619
#4  0x0000000002922eec in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
#5  0x00000000020d6aab in VisualServerScene::_gi_probe_bake_thread() ()
#6  0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#7  0x000000000298b130 in ?? ()
#8  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e68ba1640) at pthread_create.c:481
#9  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f3e6c706640 (LWP 3303) "linux"):
#0  0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x3c20c18, cond=0x3c20c40) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0x3c20c40, mutex=0x3c20c18) at pthread_cond_wait.c:619
#4  0x0000000002922eec in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
#5  0x000000000262fe0b in _IP_ResolverPrivate::_thread_function(void*) ()
#6  0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#7  0x000000000298b130 in ?? ()
#8  0x00007f3e7a3d0cde in start_thread (arg=0x7f3e6c706640) at pthread_create.c:481
#9  0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f3e7a025740 (LWP 3302) "linux"):
#0  0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
#1  0x0000000000acfcca in ?? ()
#2  0x0000000000acfdc9 in ?? ()
#3  0x0000000000ac259f in ?? ()
#4  0x0000000000ad9a20 in ?? ()
#5  <signal handler called>
#6  0x0000000000d7e016 in GDMono::initialize_load_assemblies() ()
#7  0x0000000002524a2f in ScriptServer::init_languages() ()
#8  0x0000000000d4cb30 in Main::setup2(unsigned long) ()
#9  0x0000000000d51dd3 in Main::setup(char const*, int, char**, bool) ()
#10 0x00000000009f57a9 in main ()
[Inferior 1 (process 3302) detached]

=================================================================
    Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0xd7e016):0xd7e006  7e 55 d4 01 48 8d 3d 5c 53 d4 01 e8 3a ab b4 01  ~U..H.=\S...:...
0xd7e016  0f 0b 0f 1f 84 00 00 00 00 00 48 8d 0d 01 b9 d4  ..........H.....
0xd7e026  01 ba a3 03 00 00 48 8d 35 55 55 d4 01 48 8d 3d  ......H.5UU..H.=
0xd7e036  33 53 d4 01 e8 71 24 b5 01 e9 68 ff ff ff 0f 1f  3S...q$...h.....

=================================================================
    Managed Stacktrace:
=================================================================
=================================================================
Aborted

The named Mono log file is still empty.

Hawk777 commented 2 years ago

In case you were wondering what files are the data directory:

$ find data_Test\ Project/
data_Test Project/
data_Test Project/Mono
data_Test Project/Mono/lib
data_Test Project/Mono/lib/libMonoSupportW.so
data_Test Project/Mono/lib/libmono-profiler-log.so
data_Test Project/Mono/lib/libmono-profiler-coverage.so
data_Test Project/Mono/lib/libmono-profiler-aot.so
data_Test Project/Mono/lib/libMonoPosixHelper.so
data_Test Project/Mono/lib/libmono-native.so
data_Test Project/Mono/lib/libmono-btls-shared.so
data_Test Project/Mono/etc
data_Test Project/Mono/etc/mono
data_Test Project/Mono/etc/mono/config
data_Test Project/Mono/etc/mono/browscap.ini
data_Test Project/Mono/etc/mono/4.5
data_Test Project/Mono/etc/mono/4.5/web.config
data_Test Project/Mono/etc/mono/4.5/settings.map
data_Test Project/Mono/etc/mono/4.5/machine.config
data_Test Project/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/4.5/Browsers
data_Test Project/Mono/etc/mono/4.5/Browsers/Compat.browser
data_Test Project/Mono/etc/mono/4.0
data_Test Project/Mono/etc/mono/4.0/web.config
data_Test Project/Mono/etc/mono/4.0/settings.map
data_Test Project/Mono/etc/mono/4.0/machine.config
data_Test Project/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/4.0/Browsers
data_Test Project/Mono/etc/mono/4.0/Browsers/Compat.browser
data_Test Project/Mono/etc/mono/2.0
data_Test Project/Mono/etc/mono/2.0/web.config
data_Test Project/Mono/etc/mono/2.0/settings.map
data_Test Project/Mono/etc/mono/2.0/machine.config
data_Test Project/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/2.0/Browsers
data_Test Project/Mono/etc/mono/2.0/Browsers/Compat.browser
raulsntos commented 2 years ago

The exported game is failing to load the GodotSharp.dll assembly, this should have been included inside the PCK file which is next to the binary (or in the Assemblies folder next to the Mono folder if the project setting mono/export/export_assemblies_inside_pck is set to false).

The C# module implements a ExportPlugin which gets executed on exporting and makes sure it includes all the assemblies and dependencies in the exported project. The assembly dependencies are retrieved in this line:

https://github.com/godotengine/godot/blob/e00a6d2b71a2b4dddc11f8baff942f241ca8d37a/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs#L233

This method is implemented in C++ here:

https://github.com/godotengine/godot/blob/e00a6d2b71a2b4dddc11f8baff942f241ca8d37a/modules/mono/editor/godotsharp_export.cpp#L107

When the game project doesn't contain C# code that references the GodotSharp.dll assembly, it does not get included as it's not needed (not being used). In your case, since you have no scripts then it's obviously not being used, but actually this would also happen if you have C# code that doesn't make references to the Godot API.

And when the exported binary is run, it always tries to load the Godot API assemblies because it assumes they are always included. We could probably force the GodotSharp.dll and its dependencies to always be included in the exported project, but it'd be better to leave it out if it's not being used and make the runtime not load the assembly if it's not needed to save space.

Hawk777 commented 2 years ago

Excluding files that aren’t needed seems more appropriate to me. It also seems like it would be nice if the .csproj and .sln files didn’t sit around in the VCS forever just because you added a C# file one day, put a few lines in it, and then deleted it. Maybe there could be a way to “clean up C# cruft” in case you’ve done that?