C lldb无法打印TLS变量
我决定在我的C项目中使用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
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变量创建访问器函数,并在选择适当的线程后调用这些函数来解决此问题。中有一个名为“检查线程状态”的部分,其中显示了列出线程和选择线程上下文的命令。由于不知道这是否是问题所在,您可能希望选择正确的线程上下文以使其工作?在“检查线程状态”部分中,显示了列出线程和选择线程上下文的命令。由于不知道这是否是问题所在,您可能希望选择正确的线程上下文使其工作?