指针侦探 - 检查对象(实例)并执行" PointerDetective openOn:self。"导致Pharo出现系统错误?

时间:2015-01-29 08:25:13

标签: smalltalk pharo

Pointer Detective - 检查对象(实例)并执行" PointerDetective openOn:self。"在Pharo中导致系统错误?

该对象是一个WhateverRoot实例(WAComponent的子类),它具有" canBeRoot ^ true。"

我做错了吗?

PS。我的眼睛"在错误的第9行发现错字。 "' 原始错误:' ,标题为字符串。"。也许吧,也许......

System Error screen capture

1 个答案:

答案 0 :(得分:0)

Pharo 3: 在接近问题时管理为零。似乎问题只发生在PointerDetective的最新提交(10)上。之前的那个(9)就像宣传的那样工作。这个"弱自我"错误仅发生在最近的提交中。

Squeak 4.5和Pharo 4(前沿):还在Squeak 4.5 All In One和最新的Pharo 4版本上尝试了最新的提交(10),他们都弹出了调试器而不是白色崩溃。

易于复制,即使smalltalkhub页面上的示例也会崩溃。

复制步骤:

  1. 获取Pharo 3

  2. 打开蒙蒂塞洛

  3. 添加存储库。

  4. 打开存储库。

  5. 选择最新提交(10)

  6. 负载

  7. 打开工作区

  8. 粘贴示例并执行操作 - >白屏按esc删除。

    testObject := 'END5'.
    ref1 := { testObject. nil }.
    ref2 := { ref1 }.
    ref3 := PDTestResource new heldObject: ref2. 
    ref1 at: 2 put: ref3.  "note the reference loop this creates"
    PointerDetective openOn: testObject.