Built against master branch 801dd40666d1e6009920ad3ff755c7bb993b2a62:

    $ ./bitcoind -wallet=/tmp/wallet.dat
    Error: Error loading wallet /tmp/wallet.dat. -wallet parameter must only specify a filename (not a path).
    Segmentation fault
    $ 

It's crashing here:

    Thread 1 "bitcoin-shutoff" received signal SIGSEGV, Segmentation fault.
    CConnman::Stop (this=0x0) at net.cpp:2405
    2405	    if (threadMessageHandler.joinable())
    (gdb) where
    #0  CConnman::Stop (this=0x0) at net.cpp:2405
    #1  0x00005555555a57fb in Shutdown () at init.cpp:197
    #2  0x00005555555997fb in AppInit (argc=<optimized out>, argv=<optimized out>) at bitcoind.cpp:183
    #3  0x0000555555599a39 in main (argc=0, argv=0x0) at bitcoind.cpp:195
    (gdb) 
RenameThread("bitcoin-shutoff");
    mempool.AddTransactionsUpdated(1);
    StopHTTPRPC();
    StopREST();
    StopRPC();
    StopHTTPServer();
#ifdef ENABLE_WALLET
    FlushWallets();
#endif
    MapPort(false);
    
    
    UnregisterValidationInterface(peerLogic.get());
    g_connman->Stop();
    peerLogic.reset();
    g_connman.reset();
    StopTorControl();
    if (fDumpMempoolLater && gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
        DumpMempool();
    }
    if (fFeeEstimatesInitialized)
    {
        ::feeEstimator.FlushUnconfirmed(::mempool);
        fs::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
        CAutoFile est_fileout(fsbridge::fopen(est_path, "wb"), SER_DISK, CLIENT_VERSION);
        if (!est_fileout.IsNull())
            ::feeEstimator.Write(est_fileout);
        else
            LogPrintf("%s: Failed to write fee estimates to %s\n", __func__, est_path.string());