[英]lldb cannot print TLS variable
我決定在我的 C 項目中使用 TLS 變量來定義一些應該在整個線程范圍內有效的變量。
這是我的聲明: static __thread char log_username[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 數據當前不可用,但如果我使用簡單的 printf,它就可以工作。
任何想法如何解決這個問題,或者只是將其視為我可以忍受的調試器限制......
lldb 目前不支持 OS X 上的線程本地存儲變量(不確定 Linux。)您可以通過為 TLS 變量創建訪問器函數並在選擇適當的線程后調用它們來解決此問題。
對於在 Linux 上調試 OpenMP 塊的我來說,只有在從 GCC 更改為 Clang 並安裝 LLVM 庫后,我才能使用 LLDB 打印 TLV
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.