Index: lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp =================================================================== --- lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp +++ lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp @@ -130,9 +130,12 @@ NativeProcessFreeBSD::Extension NativeProcessFreeBSD::Factory::GetSupportedExtensions() const { - return Extension::multiprocess | Extension::fork | Extension::vfork | - Extension::pass_signals | Extension::auxv | Extension::libraries_svr4 | - Extension::savecore; + return +#if defined(PT_COREDUMP) + Extension::savecore | +#endif + Extension::multiprocess | Extension::fork | Extension::vfork | + Extension::pass_signals | Extension::auxv | Extension::libraries_svr4; } // Public Instance Methods @@ -1013,6 +1016,7 @@ llvm::Expected NativeProcessFreeBSD::SaveCore(llvm::StringRef path_hint) { +#if defined(PT_COREDUMP) using namespace llvm::sys::fs; llvm::SmallString<128> path{path_hint}; @@ -1036,4 +1040,9 @@ return llvm::createStringError( close_err, "Unable to close the core dump after writing"); return path.str().str(); +#else // !defined(PT_COREDUMP) + return llvm::createStringError( + llvm::inconvertibleErrorCode(), + "PT_COREDUMP not supported in the FreeBSD version used to build LLDB"); +#endif } Index: lldb/test/API/tools/lldb-server/TestGdbRemoteSaveCore.py =================================================================== --- lldb/test/API/tools/lldb-server/TestGdbRemoteSaveCore.py +++ lldb/test/API/tools/lldb-server/TestGdbRemoteSaveCore.py @@ -15,7 +15,8 @@ procs = self.prep_debug_monitor_and_inferior() self.add_qSupported_packets() ret = self.expect_gdbremote_sequence() - self.assertIn("qSaveCore+", ret["qSupported_response"]) + if "qSaveCore+" not in ret["qSupported_response"]: + self.skipTest("qSaveCore not supported by lldb-server") self.reset_test_sequence() packet = "$qSaveCore"