C lldb无法打印TLS变量

C lldb无法打印TLS变量,c,debugging,lldb,C,Debugging,Lldb,我决定在我的C项目中使用TLS变量来定义一些在整个线程范围内都有效的变量 这是我的声明: static\uuuu线程字符日志\u用户名[100] 但是,由于某些原因,lldb调试器无法显示它们,原因如下: (lldb) print log_username[2] error: Couldn't materialize: couldn't get the value of variable log_username: No TLS data currently exists for this t

我决定在我的C项目中使用TLS变量来定义一些在整个线程范围内都有效的变量

这是我的声明:
static\uuuu线程字符日志\u用户名[100]

但是,由于某些原因,lldb调试器无法显示它们,原因如下:

(lldb) print log_username[2]
error: Couldn't materialize: couldn't get the value of variable log_username: 
No TLS data currently exists for this thread.
Errored out in Execute, couldn't PrepareToExecuteJITExpression
调试器声明TLS数据当前不可用,但如果我使用simple printf,它会工作


有没有办法解决这个问题,或者只是把它当作调试器的限制,我可以接受

lldb当前不支持OS X上的线程本地存储变量(不确定Linux)。您可以通过为TLS变量创建访问器函数,并在选择适当的线程后调用这些函数来解决此问题。

lldb当前不支持OS X上的线程本地存储变量(不确定Linux)您可以通过为TLS变量创建访问器函数,并在选择适当的线程后调用这些函数来解决此问题。

中有一个名为“检查线程状态”的部分,其中显示了列出线程和选择线程上下文的命令。由于不知道这是否是问题所在,您可能希望选择正确的线程上下文以使其工作?在“检查线程状态”部分中,显示了列出线程和选择线程上下文的命令。由于不知道这是否是问题所在,您可能希望选择正确的线程上下文使其工作?