JetBrain Rider:在调试期间查看 List<>
Posted
技术标签:
【中文标题】JetBrain Rider:在调试期间查看 List<>【英文标题】:JetBrain Rider: viewing List<> during debugging 【发布时间】:2018-09-03 11:16:57 【问题描述】:我试图在调试期间查看 List 的内容。不幸的是,我看不到它们,因为我在变量窗口中收到以下消息:
corvalue.GetExactTypeSafe(输出类型)。对象在一个 僵尸状态。 (HRESULT 例外:0x8013134F)。错误代码是 CORDBG_E_OBJECT_NEUTERED,或 0x8013134F。
有人知道这意味着什么以及如何查看列表?这不是编译错误,因为我可以正常运行代码。
【问题讨论】:
我认为调试器在您尝试查看它的内容时无法访问该变量,因为父踏板处于僵尸状态,这可能吗? her you can find a long explanation of the problem. 【参考方案1】:听起来您正在使用多线程。让我们从zombie state
开始。zombie state
是先前(由另一个线程)启动的线程最终完成工作的时间。此外,该线程没有将控制权返回给调用线程。因此,这个线程目前没有做任何事情,尽管它没有被终止。这是名称的来源,线程没有活着也没有死。有关更多信息,您可以查看此post。
您只需通过重新启动程序或终止父线程\进程来释放所有分配的资源。
如果您在“有趣的代码”中一直遇到问题,您还可以尝试在没有多线程的情况下运行程序,以确保您不会在此过程中遇到任何僵尸。 (:
【讨论】:
您好,谢谢您的回复。如何运行不使用多线程的程序?这个骑士是特定的吗?因为在 VS 中我可以毫无问题地查看集合...问候 我的意思是您可以将感兴趣的区域临时转换为单线程代码。如果只是为了调试。 我不认为这篇文章回答了最初的问题。我将赏金放在了在 RIder 的调试器中查看变量的解决方案上。 VS 显示它们的价值没有问题。这个答案只是对僵尸状态的解释(不是问题)以及重写代码以不使用多线程的建议(在我的情况下是不可能的,也不是问题的解决方案)。以上是关于JetBrain Rider:在调试期间查看 List<>的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jetbrain 的 Rider IDE 中运行项目?
JetBrain Rider,使用带有 Windows 身份验证的 IIS Express 时访问被拒绝