首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >11 TLS不能打印TLS变量。

11 TLS不能打印TLS变量。
EN

Stack Overflow用户
提问于 2016-03-23 09:38:27
回答 2查看 515关注 0票数 1

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

这是我的声明:static __thread char log_username[100];

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

代码语言:javascript
复制
(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数据目前不可用,但是如果我使用简单的printf,它就能工作。

如果你知道如何解决这个问题,或者把它当作我可以接受的调试器限制.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-23 22:13:16

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

票数 2
EN

Stack Overflow用户

发布于 2022-05-23 20:56:08

对于我来说,在Linux上调试一个OpenMP块,只有在从GCC到Clang并安装LLVM库之后,我才能用LLDB打印TLVs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36174473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档