mgorny added a comment. In D91012#2381884 <https://reviews.llvm.org/D91012#2381884>, @labath wrote:
> Are you sure that's the right level at which to fix this? Can you explain how > that particular test manages to pass a nullptr to this function? I'm not. However, it's a smaller change that checking it before every one of the three `getprogpath()` calls. `getMainExecutable()` is passed `argv0=nullptr`. Other platforms probably don't hit this because their primary code succeeds, while the code for FreeBSD < 13 apparently doesn't here. Hence, `getprogname()` is called with `nullptr` argument. (lldb) bt * thread #1, name = 'python3.7', stop reason = signal SIGSEGV: invalid address (fault address: 0x0) * frame #0: 0x00000008086c48ff libLLVMSupport.so.12git`llvm::sys::fs::getMainExecutable(char const*, void*) + 80 frame #1: 0x00000008086c96e8 libLLVMSupport.so.12git`printSymbolizedStackTrace(llvm::StringRef, void**, int, llvm::raw_ostream&) + 485 frame #2: 0x00000008086ca91e libLLVMSupport.so.12git`llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 96 frame #3: 0x0000000802b24b34 _lldb.so`lldb_private::Log::WriteHeader(llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) + 718 frame #4: 0x0000000802b2472b _lldb.so`lldb_private::Log::VAPrintf(char const*, __va_list_tag*) + 165 frame #5: 0x0000000802b245a9 _lldb.so`lldb_private::Log::Printf(char const*, ...) + 107 frame #6: 0x0000000802a41f55 _lldb.so`lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&, lldb_private::ExecutionContext*, bool, bool) + 127 frame #7: 0x000000080270575d _lldb.so`lldb::SBCommandInterpreter::HandleCommand(char const*, lldb::SBExecutionContext&, lldb::SBCommandReturnObject&, bool) + 389 frame #8: 0x00000008027053e6 _lldb.so`lldb::SBCommandInterpreter::HandleCommand(char const*, lldb::SBCommandReturnObject&, bool) + 216 frame #9: 0x00000008029172ca _lldb.so`_wrap_SBCommandInterpreter_HandleCommand(_object*, _object*) + 2069 frame #10: 0x000000080036a3d7 libpython3.7m.so.1.0`PyCFunction_Call + 327 [...] (the rest of the backtrace is Python) `llvm::sys::PrintStackTrace()` calls `printSymbolizedStackTrace(Argv0, ...)`, and the global static variable `Argv0` is only set by `llvm::sys::PrintStackTraceOnErrorSignal()` which is not being called here. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91012/new/ https://reviews.llvm.org/D91012 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits