Please do not post a support request without first reading and following the advice in

"_M_construct null not valid" upon bootup, started after a year of no issues.

  • Hi, all has anyone come across a way to fix this?

    I've used a Pi 3B for over a year, with no issues, updating regularly; it reports using Linux 4.19.42-v7+. I have just updated all core binaries, and most other binaries - the last update I did was over 1 month ago - and I also did something else: I've always used EmulationStation dev version, updating it from source. Today, I noticed that it had a binary, too, so I updated from that.

    I rebooted, and now, after the Retropie logo - probably just when ES is supposed to start loading - the Pi throws out this:

    terminate called after throwing an instance of 'std::logic_error'
      what():  basic_string::_M_construct null not valid

    I cannot do anything else afterwards - I see the prompt, pi@retropie:~ $, with a blinking cursor, but it does not react to any key being pressed...

    I can log on to Retropie Manager, and I can browse the Retropie bios / configs / roms / splashcreens directories via the network connections in Windows...

    Has anyone come across this error?

  • Global Moderator

    That's weird, the experimental section shouldn't have binary packages built by default, though I see the option now for emulationstation-dev and other package. If I install from binary, then I get the same error - but not if I install from source.

    My advice is to install the main emulationstation package back - there's little difference now between -dev and the stable versions - or re-install from source the -dev package.

  • administrators

    @mitu I have recently built binaries for all experimental packages. I didn't mention it here sorry. I think I mentioned it on twitter. I did this due to long compile times for MAME etc.

    Not sure why ES Dev binary is broken. Will check.

  • Global Moderator

    @BuZz said in "_M_construct null not valid" upon bootup, started after a year of no issues.:

    Not sure why ES Dev binary is broken. Will check.

    Looks like an ABI mis-match. Well, that means lr-mess is installable from binary :).

  • administrators

    @mitu if there's is an abi mismatch it may affect that too.. I crosscompiled so I'll check/fix/rebuild everything. Sorry about this.

  • Global Moderator

    @BuZz It might be something else, I'll try to run through a debugger to see where it stops.

  • administrators

    @mitu thanks.

  • Global Moderator

    It's crashing when trying to allocate a string, somewhere in the standard C++ lib

    #6  0x76a2a4d4 in std::__throw_logic_error(char const*) () from /usr/lib/arm-linux-gnueabihf/
    No symbol table info available.
    #7  0x0006b1f8 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.43] ()
    No symbol table info available.
    #8  0x0006b2b0 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.40] ()
    No symbol table info available.
    #9  0x00060e48 in main ()

    I don't see an updates in Raspbian since the build date (27.05) that could affect the standard libraries, only some ffmpeg libs.

  • administrators

    Maybe my libraries are mismatched on my cross compiler since other recent updates. Will check over the weekend.

  • administrators

    I rebuilt it and I think it's ok now. Not sure what happened. Please can someone test ?

    As @mitu said though, the stable version was recently updated so probably not a great need for the Dev version.

  • I'm kind of hesitant to check the binary again, but what I did to fix that was:

    • run retropie manager (always enable that! :D) from a windows browser
    • disable booting to emu station in configuration
    • reboot the pi to prompt - it did not hang
    • uninstall es dev, reinstall regular binary

    That fixed it. I also tried es-dev from the source, and the pi is running correctly with it.

    (By the way, I noticed that there are now so many binaries available in the experimental section that perhaps its menu could use the addition of the "update from binary" option, like the other menus do!)

  • administrators

    @BazzCatt good spot with the update from binary option. I'll add it.

Log in to reply

Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.