Hi,
I'm having issues using the debugger when I am trying to debug errors when I am using a third party API's. Typically, it's because I'm making errors when trying to use a third party component. The debugger errors are usually totally opaque to me, for example I'm getting this when using a scripitilious component:
BlockClosure(Object)>>error: BlockClosure>>numArgsError: BlockClosure>>value: SUTreeReportColumn>>render:on: [] in [] in SUTreeReportColumn>>render:indent:on: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: [] in WADivTag(WATagBrush)>>with: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: WARenderCanvas(WACanvas)>>nest: WADivTag(WABrush)>>with: WADivTag(WATagBrush)>>with: [] in SUTreeReportColumn>>render:indent:on: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: [] in WADivTag(WATagBrush)>>with:
In the above I can't see anywhere which references a line in my code, consequently I'm finding it hard to proceed.
Are there any tutorials or hints on how best to use the debugger ?
Thanks.
On Fri, 18 Mar 2011, recursive68@gmail.com wrote:
Hi,
I'm having issues using the debugger when I am trying to debug errors when I am using a third party API's. Typically, it's because I'm making errors when trying to use a third party component. The debugger errors are usually totally opaque to me, for example I'm getting this when using a scripitilious component:
BlockClosure(Object)>>error: BlockClosure>>numArgsError: BlockClosure>>value: SUTreeReportColumn>>render:on: [] in [] in SUTreeReportColumn>>render:indent:on: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: [] in WADivTag(WATagBrush)>>with: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: WARenderCanvas(WACanvas)>>nest: WADivTag(WABrush)>>with: WADivTag(WATagBrush)>>with: [] in SUTreeReportColumn>>render:indent:on: BlockClosure>>renderOn: WARenderCanvas(WARenderer)>>render: WARenderCanvas(WACanvas)>>render: [] in WADivTag(WATagBrush)>>with:
In the above I can't see anywhere which references a line in my code, consequently I'm finding it hard to proceed.
Your code is not in this list. If you click the "Full Stack" button, you'll see the stack frames which will contain your code.
Are there any tutorials or hints on how best to use the debugger ?
Here is a bit outdated description of how the debugger can be used: http://wiki.squeak.org/squeak/2131
Levente
Thanks.
Here is what I can tell.
You are using Seaside. Somewhere in the page you are using a TreeReportColumn, and when you try to display the page, it is expecting a block with one argument (that is why it sent #value:) but got a block with a different number of arguments. If I were debugging this, I would look at that block because probably it is something you wrote. When you see it, you'll probably say "Oh, sure, that block should take an argument", though perhaps you will say "Why should *that* block take an argument?" but in either case, it will probably be a block that you wrote.
Note that there is no class "Block", what we call a block when we are looking at a Smalltalk metod is really an instance of class BlockClosure.
BlockClosure(Object)>>error: BlockClosure>>numArgsError: BlockClosure>>value: SUTreeReportColumn>>render:on: [] in [] in SUTreeReportColumn>>render:indent:on:
Thanks for the tips and pointers.
On 19 March 2011 12:13, Ralph Johnson johnson@cs.uiuc.edu wrote:
Here is what I can tell.
You are using Seaside. Somewhere in the page you are using a TreeReportColumn, and when you try to display the page, it is expecting a block with one argument (that is why it sent #value:) but got a block with a different number of arguments. If I were debugging this, I would look at that block because probably it is something you wrote. When you see it, you'll probably say "Oh, sure, that block should take an argument", though perhaps you will say "Why should *that* block take an argument?" but in either case, it will probably be a block that you wrote.
Note that there is no class "Block", what we call a block when we are looking at a Smalltalk metod is really an instance of class BlockClosure.
BlockClosure(Object)>>error: BlockClosure>>numArgsError: BlockClosure>>value: SUTreeReportColumn>>render:on: [] in [] in SUTreeReportColumn>>render:indent:on:
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org