从应用程序内观察堆栈上的值类型和堆上的对象

发布于 2024-09-25 12:09:13 字数 80 浏览 5 评论 0原文

如果这是一个愚蠢的问题,请原谅我。当应用程序(例如控制台应用程序)运行时,可以以编程方式“观察”堆栈和堆的内容吗?有没有 API 可以做到这一点?

Forgive me If this is a dumb question. Can one programmatically "observe" the contents of stack and heap while an application (say a console app) is running? Are there any APIs which would do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人生百味 2024-10-02 12:09:13

好吧,您可以尝试使用 CLR 调试器 API - 尽管我不确定您是否可以在同一进程中使用它。但是,我认为可能有更好的解决方案......您实际上想做什么?这里的大局是什么?

Well, you could try using the CLR Debugger API - although I'm not sure whether you can use that within the same process. However, I think it's likely that there's a better solution... what are you actually trying to do? What's the bigger picture here?

冷心人i 2024-10-02 12:09:13

我不知道,尽管一些非托管代码可以轻松跟踪堆栈,而跟踪堆则需要考虑 GC,因为指针可以在每次 GC 之后移动。

现在,由于唯一可以更改变量的应用程序是控制台应用程序(!),那么为什么要这样做呢?当然,您只会跟踪您自己在应用程序中所做的事情。是为了修复错误吗?在这种情况下,我建议您进行代码审查而不是黑魔法。

I do not know although some unmanaged code can easily track the stack while tracking heap requires considering GC since pointers can move after each GC.

Now, since the only application that can change variable is your console application (!) so why would you wanna do that? Surely you will be only tracking what you are doing yourself in the application. Is it for bug-fixing? In that case I recommend you do code review instead of black magic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文