Index: contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp =================================================================== --- contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp +++ contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp @@ -13,14 +13,29 @@ #include #include #include +#include #include +#if __FreeBSD_version >= 1200018 +#define MORE_TD_NAME 1 +#else +#define MORE_TD_NAME 0 +#endif + using namespace lldb_private; uint32_t HostInfoFreeBSD::GetMaxThreadNameLength() { - return 16; + struct kinfo_proc *kp = nullptr; + size_t len; + + len = sizeof(kp->ki_tdname) - 1; +#if MORE_TD_NAME + len += sizeof(kp->ki_moretdname) - 1; +#endif + + return (static_cast(len)); } bool @@ -88,4 +103,4 @@ } } return g_program_filespec; -} \ No newline at end of file +} Index: contrib/llvm/tools/lldb/source/Host/freebsd/HostThreadFreeBSD.cpp =================================================================== --- contrib/llvm/tools/lldb/source/Host/freebsd/HostThreadFreeBSD.cpp +++ contrib/llvm/tools/lldb/source/Host/freebsd/HostThreadFreeBSD.cpp @@ -13,17 +13,20 @@ // C includes #include -#include -#if defined (__FreeBSD__) -#include -#endif #include +#include #include #include // C++ includes #include +#if __FreeBSD_version >= 1200018 +#define MORE_TD_NAME 1 +#else +#define MORE_TD_NAME 0 +#endif + using namespace lldb_private; HostThreadFreeBSD::HostThreadFreeBSD() @@ -72,6 +75,10 @@ if (kp[i].ki_tid == (lwpid_t)tid) { name.append(kp[i].ki_tdname, kp[i].ki_tdname + strlen(kp[i].ki_tdname)); +#if MORE_TD_NAME + name.append(kp[i].ki_moretdname, + kp[i].ki_moretdname + strlen(kp[i].ki_moretdname)); +#endif break; } }