openmsx crashing on ubuntu bionic ARM

Page 1/2
| 2

By Daemos

Paragon (1668)

Daemos's picture

16-10-2018, 21:32

Title explains alot but I will try to give as much info as possible. Latest openmsx has prebuilt binaries in the ubuntu bionic port channel. It is the only program that crashes with segmentation fault. Situation is complex. I am running in a chrooted enviroment as normal non privileged user. Crash occurs both on armhf and arm64. System runs normal. As of now this message is typed from this very same system.

Can anyone confirm that it crashes in any other arm system?

If any kind of output or logs are requested I am happy to supply.

fmsx works in the same system but openmsx has that awesome unbeatable debugger.

Login or register to post comments

By Manuel

Ascended (14738)

Manuel's picture

18-10-2018, 00:18

In such cases we need to know:
- which openMSX version are you trying exactly
- in which scenario do you get the segmentation fault: what is it you tried to do exactly?
- can you get a backtrace with gdb for us?
- and possibly, can you build a debug-binary of openMSX on that system and then get a backtrace with gdb for us?

By Daemos

Paragon (1668)

Daemos's picture

18-10-2018, 00:33

Got ya. Will try to build from source tomorrow and try all your instructions. I will then report back with all the requested info.

By DrWh0

Paladin (712)

DrWh0's picture

19-10-2018, 17:59

Daemos wrote:

Title explains alot but I will try to give as much info as possible. Latest openmsx has prebuilt binaries in the ubuntu bionic port channel. It is the only program that crashes with segmentation fault. Situation is complex. I am running in a chrooted enviroment as normal non privileged user. Crash occurs both on armhf and arm64. System runs normal. As of now this message is typed from this very same system.

Can anyone confirm that it crashes in any other arm system?

If any kind of output or logs are requested I am happy to supply.

fmsx works in the same system but openmsx has that awesome unbeatable debugger.

Try changing scaling to 2-3x not 4x, I had similar issues on that scaling factor with last versions of ubuntu (nvidia card, driver 390 also with noveau)

In some cases using 396 drivers ppa for Nvidia solved the problem

Take a look at it if your issues is related to it Wink

By Daemos

Paragon (1668)

Daemos's picture

19-10-2018, 18:46

as far as I can see the scale factor cannot be set on startup. It crashes as soon as it tries to run.

Downloading all the libs required for compiling will try to compile debug build soon.

By Daemos

Paragon (1668)

Daemos's picture

19-10-2018, 20:52

So far the awnsers to your questions manuel:

- Using latest version 0.14.0 Build from source.
- This is the output from bash. Direct failure during startup

android@localhost:~/openmsx-0.14.0/derived$ ./openmsx 
expected floating-point number but got ""
ALSA lib seq_hw.c:466:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
error: Could not open sequencer: No such file or directory
info: SRAM file cbios-msx2+.cmos not found, assuming blank SRAM content.
Segmentation fault

EDIT:

opengl is not available on the running machine. Propably a important detail.

- I have build the debug build of openmsx I am just fiddling around how to get the backtrace for you with gdb. Hint me a little on how to get the backtrace for you.

SOmething like this?

Starting program: /home/android/openmsx-0.14.0/derived/openmsx 
warning: Unable to determine the number of hardware watchpoints available.
warning: Unable to determine the number of hardware breakpoints available.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fb263afc0 (LWP 26997)]
[Thread 0x7fb263afc0 (LWP 26997) exited]
[New Thread 0x7fb263afc0 (LWP 26998)]
expected floating-point number but got ""
ALSA lib seq_hw.c:466:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
error: Could not open sequencer: No such file or directory
info: SRAM file cbios-msx2+.cmos not found, assuming blank SRAM content.
[New Thread 0x7fb1cd2fc0 (LWP 26999)]

Thread 1 "openmsx" received signal SIGSEGV, Segmentation fault.
0x0000007fb728e670 in ?? () from /usr/lib/aarch64-linux-gnu/libGLX.so.0

By Manuel

Ascended (14738)

Manuel's picture

19-10-2018, 23:33

Good, you started openMSX from gdb and got the crash. Now type: bt full to get the backtrace.

You may want to create a debug build first to get more meaningful output. When compiling add OPENMSX_FLAVOUR=debug at the end of your make command line.

By Daemos

Paragon (1668)

Daemos's picture

20-10-2018, 00:16

Debug build fails at video9000.cc devel build compiles but gives the same result in gdb and a no symbol table available error after typing bt full.

By Manuel

Ascended (14738)

Manuel's picture

20-10-2018, 08:49

What is the error you get when compiling the debug build?

By Daemos

Paragon (1668)

Daemos's picture

20-10-2018, 09:12

Compiling video/v9990/Video9000.cc...
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/stl_pair.h:59,
                 from /usr/include/c++/7/bits/stl_algobase.h:64,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/string:40,
                 from src/utils/string_ref.hh:4,
                 from src/config/DeviceConfig.hh:4,
                 from src/MSXDevice.hh:4,
                 from src/video/v9990/Video9000.hh:4,
                 from src/video/v9990/Video9000.cc:1:
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__or_ >, std::is_reference >, std::is_void > >':
/usr/include/c++/7/type_traits:154:31:   required from 'struct std::__not_ >, std::is_reference >, std::is_void > > >'
/usr/include/c++/7/type_traits:600:12:   required from 'struct std::is_object >'
/usr/include/c++/7/type_traits:120:12:   required from 'struct std::__or_ >, std::is_reference > >'
/usr/include/c++/7/type_traits:637:12:   required from 'struct std::__is_referenceable '
/usr/include/c++/7/type_traits:1649:12:   required from 'struct std::add_lvalue_reference >'
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:125:12: error: invalid use of incomplete type 'std::conditional >, std::__or_ >, std::is_void > > >::type {aka struct std::__or_ >, std::is_void > >}'
     struct __or_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/type_traits:107:12: note: declaration of 'std::conditional >, std::__or_ >, std::is_void > > >::type {aka struct std::__or_ >, std::is_void > >}'
     struct __or_;
            ^~~~~
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__not_ >, std::is_reference >, std::is_void > > >':
/usr/include/c++/7/type_traits:600:12:   required from 'struct std::is_object >'
/usr/include/c++/7/type_traits:120:12:   required from 'struct std::__or_ >, std::is_reference > >'
/usr/include/c++/7/type_traits:637:12:   required from 'struct std::__is_referenceable '
/usr/include/c++/7/type_traits:1649:12:   required from 'struct std::add_lvalue_reference >'
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:154:31: error: 'value' is not a member of 'std::__or_ >, std::is_reference >, std::is_void > >'
     : public __bool_constant
                               ^~~~~~~~~~~~~~~~
/usr/include/c++/7/type_traits: In instantiation of 'struct std::is_object >':
/usr/include/c++/7/type_traits:120:12:   required from 'struct std::__or_ >, std::is_reference > >'
/usr/include/c++/7/type_traits:637:12:   required from 'struct std::__is_referenceable '
/usr/include/c++/7/type_traits:1649:12:   required from 'struct std::add_lvalue_reference >'
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:600:12: error: no type named 'type' in 'struct std::__not_ >, std::is_reference >, std::is_void > > >'
     struct is_object
            ^~~~~~~~~
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__or_ >, std::is_reference > >':
/usr/include/c++/7/type_traits:637:12:   required from 'struct std::__is_referenceable '
/usr/include/c++/7/type_traits:1649:12:   required from 'struct std::add_lvalue_reference >'
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'sx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:120:12: error: 'value' is not a member of 'std::is_object >'
     struct __or_<_B1, _B2>
            ^~~~~~~~~~~~~~~
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__is_referenceable >':
/usr/include/c++/7/type_traits:1649:12:   required from 'struct std::add_lvalue_reference >'
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:637:12: error: no type named 'type' in 'struct std::__or_ >, std::is_reference > >'
     struct __is_referenceable
            ^~~~~~~~~~~~~~~~~~
/usr/include/c++/7/type_traits: In instantiation of 'struct std::add_lvalue_reference >':
/usr/include/c++/7/bits/unique_ptr.h:320:7:   required from 'class std::unique_ptr, std::default_delete > >'
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/type_traits:1649:12: error: 'value' is not a member of 'std::__is_referenceable >'
     struct add_lvalue_reference
            ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/memory:80:0,
                 from src/utils/memory.hh:4,
                 from src/serialize_meta.hh:6,
                 from src/MSXDevice.hh:7,
                 from src/video/v9990/Video9000.hh:4,
                 from src/video/v9990/Video9000.cc:1:
/usr/include/c++/7/bits/unique_ptr.h: In instantiation of 'class std::unique_ptr, std::default_delete > >':
src/serialize_meta.hh:297:65:   required from 'void openmsx::PolymorphicInitializerRegistry::registerClass(const char*) [with T = openmsx::Video9000; Archive = openmsx::MemInputArchive]'
src/serialize_meta.hh:334:3:   required from 'openmsx::RegisterInitializerHelper::RegisterInitializerHelper(const char*) [with Archive = openmsx::MemInputArchive; T = openmsx::Video9000]'
src/video/v9990/Video9000.cc:179:1:   required from here
/usr/include/c++/7/bits/unique_ptr.h:320:7: error: no type named 'type' in 'struct std::add_lvalue_reference >'
       operator*() const
       ^~~~~~~~
build/main.mk:522: recipe for target 'derived/arm-linux-debug/obj/video/v9990/Video9000.o' failed
make: *** [derived/arm-linux-debug/obj/video/v9990/Video9000.o] Error 1

By Manuel

Ascended (14738)

Manuel's picture

20-10-2018, 09:17

Can you try with the latest sources in our git repository?

Page 1/2
| 2
My MSX profile