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) 
{
    std::string strDataDir = GetDataDir().string();
    
    fs::path pathLockFile = GetDataDir() / ".lock";
    FILE* file = fsbridge::fopen(pathLockFile, "a"); 
    if (file) fclose(file);
    try {
        static boost::interprocess::file_lock lock(pathLockFile.string().c_str());
        if (!lock.try_lock()) {
            return InitError(strprintf(_("Cannot obtain a lock on data directory %s. %s is probably already running."), strDataDir, _(PACKAGE_NAME)));
        }
        if (probeOnly) {
            lock.unlock();
        }
    } catch(const boost::interprocess::interprocess_exception& e) {
        return InitError(strprintf(_("Cannot obtain a lock on data directory %s. %s is probably already running.") + " %s.", strDataDir, _(PACKAGE_NAME), e.what()));
    }
    return true;
}
bool AppInitSanityChecks()