There appears to be a problem with the debugger in vw 7.4.1. This is what I do: I open a vanilla 7.4.1 image. I load the Oracle EXDI parcel I accept the following class method on an arbitrary class
(ActionButton class in my example): doInTransaction: aBlock |
connection | connection
:= OracleConnection new. connection
username: 'username'. connection
environment: 'database’. connection
connect: 'password'. connection
begin. [aBlock
ensure: [connection commit]] ensure: [connection disconnect] Then I perform the following piece of Smalltalk code: self
halt. self doInTransaction: [Transcript
show: ‘test’] Beause of the halt the debugger opens and I start stepping
through the code by using the F6 key (=Step). After pressing it three times, I end
up at the end of the block. If I then step one more time I get an exception on OracleNTInterface
saying: unsupported
operation I get this error only when I use the debugger to step
through the code. It seems that debugger messes something up if you try to ‘step
out of a block’. This doesn’t occur in a VW 7.3.1 image. Perhaps it has something to do with ExternalInterface subclasses
& simulation of byte code execution in the debugger? Has anyone encountered this before? (And is there a fix for
it?) Thanks in advance, Mark The stack trace is here: Unhandled exception: unsupported operation OracleNTInterface(ExternalInterface)>>externalAccessFailedWith: OracleNTInterface(OracleInterface)>>OCITransCommit:with:with: ExternalMethod>>unlinkedCall:arguments: OracleConnection>>commitExternal optimized [] in [] in
ExternalDatabaseTransaction>>finishTransaction:method: BlockClosure>>on:do: optimized [] in
ExternalDatabaseTransaction>>finishTransaction:method: optimized [] in [] in
ExternalDatabaseFramework>>participantsDo: WeakArray(SequenceableCollection)>>do: optimized [] in
ExternalDatabaseFramework>>participantsDo: BlockClosure>>ensure: optimized [] in RecursionLock>>critical: BlockClosure>>ensure: Semaphore>>critical: RecursionLock>>critical: OracleTransaction(ExternalDatabaseFramework)>>participantsDo: OracleTransaction(ExternalDatabaseTransaction)>>finishTransaction:method: OracleTransaction(ExternalDatabaseTransaction)>>commit OracleConnection(ExternalDatabaseConnection)>>commit optimized [] in [] in ActionButton class>>doInTransaction: BlockClosure>>valueAsUnwindBlockFrom: BlockClosure>>ensure: optimized [] in ActionButton class>>doInTransaction: BlockClosure>>ensure: ActionButton class>>doInTransaction: ActionButton class>>unboundMethod ActionButton class(Object)>>performMethod:arguments: ActionButton class(Object)>>performMethod: TextEditorController(ParagraphEditor)>>evaluateCompiled: |
Yes, there seems to have been some kind of a regression with
respect to stepping and DLL/CC methods in 7.4 in general. AR 52122 looks
to be the relevant thing. I don't know of a workaround at the
moment.
At 08:02 AM 4/2/2007, Mark Plas wrote: There appears to be a problem with the debugger in vw 7.4.1. --
Alan Knight [|], Cincom Smalltalk Development
"The Static Typing Philosophy: Make it fast. Make it right.
Make it run." - Niall Ross
|
Free forum by Nabble | Edit this page |