gpt4 book ai didi

debugging - Pharo:如何在调试器中查看 newProcess 的发送者?

转载 作者:行者123 更新时间:2023-12-01 13:46:40 24 4
gpt4 key购买 nike

我正面临这样的调试情况。我能看到的最古老的方法是 BlockClosure newProcess。

但我需要查看是谁发起了 newProcess 发送。当我单击调试器方法列表中的方法时,堆栈不会像通常显示调用者那样展开。

这在 Pharo 中可行吗?

最佳答案

简短的回答:没有。一个新进程在其构想之前没有任何历史记录。

稍微长一点的答案:如果您愿意做一些工作,您可以使用正常的闭包创建在新进程中嵌入对调用方进程的引用。这是一个例子:

| currentStack forkedProcess |
currentStack := thisContext copyStack.

forkedProcess := [
| referenceToCaller |
referenceToCaller := currentStack.
self performOperations ] fork.

请注意,这不会增强您的调试体验,因为调试器不知道您有那个引用。为此,您需要扩展当前流程的堆栈(上述流程的变体):

forkedProcess := [
thisContext bottomContext privSender: currentStack.
self performOperations ] fork.

像这样操作上下文链时要非常小心。您可能会遇到难以理解和调试的情况。我在此处展示的内容仅供说明之用,如果您不知道系统的工作原理,则不应使用。

关于debugging - Pharo:如何在调试器中查看 newProcess 的发送者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35530281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com