You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试threadvar值:断点时窗口显示‘Inaccessible value’,无需临时变量如何查看?

解决ThreadVar调试时无法访问值的问题

针对你把全局var改为threadvar后,调试时Evaluate/Modify窗口提示“Inaccessible value”的问题,除了临时局部变量的方法,还有以下几种可行方案:

  • 通过Watch List指定线程上下文查看
    打开Watch List(View > Debug Windows > Watch List),添加你的线程变量名(比如MyThreadVar)。右键该Watch项,选择Properties,在弹出的对话框中勾选“Thread Local”,然后在下拉列表中选择当前调试的线程。调试器会自动加载对应线程的线程本地存储(TLS)实例值,就能正常查看了。

  • 手动切换线程上下文
    打开Threads面板(View > Debug Windows > Threads),确认当前断点所在的线程被选中(调试时断点触发后,有时调试器会默认停在主线程,需要手动切换到目标工作线程)。切换完成后再回到Evaluate/Modify窗口输入变量名,就能获取当前线程的threadvar值。

  • 通过内存地址直接解析
    如果前两种方法无效,可以先在Evaluate窗口输入@MyThreadVar获取该线程变量的内存地址。打开Memory窗口(View > Debug Windows > Memory),输入这个地址,然后根据变量类型解析内存内容:比如Integer类型取连续4字节的数值,字符串则查看指针指向的内存区域。

注意事项

  • 确保使用的Delphi版本支持threadvar的调试功能(Delphi XE及后续版本均支持,老版本可能存在兼容性问题)。
  • 如果目标线程已经终止,对应的threadvar实例会被销毁,此时提示“Inaccessible value”属于正常情况。

内容的提问来源于stack exchange,提问作者Jan Doggen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 02:22:09