Submitted this bug[1] against glassdb/Grease for tracking... [1] https://github.com/glassdb/Grease/issues/4 On Mon, Jun 16, 2014 at 12:09 PM, Dale Henrichs <[hidden email]> wrote:
|
On Mon, Jun 16, 2014 at 12:16 PM, Dale Henrichs <[hidden email]> wrote:
|
In reply to this post by Dale Henrichs-3
On Mon, Jun 16, 2014 at 4:09 PM, Dale Henrichs <[hidden email]> wrote:
Hi Dale, For for debugging this. I have just tried (I use Seaside 3.0.9) and it still didn't work. First, I would get a dnu because in the line "aFrame at: 1) homeMethod" the #:at would answer nil for same frames. So I modified to the following version:
callbackMarker | level aFrame visitTaskMethod | visitTaskMethod := WATaskVisitor compiledMethodAt: #'visitTask:'. level := 1. [ (aFrame := GsProcess _frameContentsAt: level) ~~ nil ]
whileTrue: [ (((aFrame at: 10) isKindOf: WACallback) or: [ (aFrame at: 1) ifNil: [ false ] ifNotNilDo: [:gsMethod | gsMethod homeMethod == visitTaskMethod] ]) ifTrue: [ ^ aFrame at: 1 ].
level := level + 1 ]. ^ nil But then I get again the same error as I was getting before... Question...I am browsing the stack I get in GemTools... I want to inspect the context where I have the call to visitTask. But when I inspect I get a OGStackFrame. How can I get the associated Gemstone context from it?
Thanks,
Mariano http://marianopeck.wordpress.com |
On Mon, Jun 16, 2014 at 1:35 PM, Mariano Martinez Peck <[hidden email]> wrote:
That code looks fine. I've attached the mcz with the component code as well, so we can truly compare apples to apples and let's see if you get the same results as I did ... if it works for you, then the example you sent doesn't match your real stack well enough ... if it doesn't work for you, the the difference might be in the fact that I'm running GemStone3.2 and Seaside3.1 while you are running GemStone 3.1(?) and Seaside 3.0.9.
The GemStone context is a C struct, so the OGStackFrame is about as close as you're going to get ... the `aFrame` is just an Array and the OGStackFrame wraps the Array from #frameContentsAt: ... there is no #thisContext in GemStone ... The patch I cam up with a pretty "cheap hack" and I was a bit surprised that it seemed to work ... but I think your example was not close enough to the real problem or Seaside3.0.9/GemStone3.1 aren't behaving quite the same ... I will take a crack at Seaside3.0.9 and GemStone3.1 myself while I await your reply. Dale TestsTasks-dkh.2.mcz (3K) Download Attachment |
On Mon, Jun 16, 2014 at 5:52 PM, Dale Henrichs <[hidden email]> wrote:
Hi Dale, I have just tried the TestTasks in my GemStone 3.0.1.5 with Seaside 3.0.9 and I do get the original error that started this thread.
OK...so then maybe the problem might be the inspector. When I inspect an instance of a OGStackFrame I don't see anything... Yes...indeed.I commented out the pragma of #debuggerInspectorNodes and now I can see the real info..
now....WTF!!!! Once I open the stack that yielded the error, I go down up to the visitTask. I inspect that context and I get a OGStackFrame. Now with that stackframe I execute:
(frame at: 1) homeMethod == (WATaskVisitor compiledMethodAt: #visitTask:) and guess what I receive??? TRUE!!!! grrr this is strange. Mariano http://marianopeck.wordpress.com |
Okay ... let me look and see what I can figure out ... I don't think the actual partial continuation logic changed in from 3.1 to 3.2 ... but there may be other things at work here ...
I'll let you know ...Dale On Mon, Jun 16, 2014 at 2:12 PM, Mariano Martinez Peck <[hidden email]> wrote:
|
Mariano, I'm afraid that I am not seeing the error that you are seeing ... when I run with your patch (or my patch) ... the counter shows up and is functional ....? I'm doing my testing with GemStone3.1.0.5, Seaside 3.0.9.1 .... After changed the method I went back out to the root component and then hit examples/mariano again and it worked ... Dale On Mon, Jun 16, 2014 at 2:18 PM, Dale Henrichs <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |