Re: 'trace(1)' doesnt work under Eu 2.5 Source?

new topic     » goto parent     » topic index » view thread      » older message » newer message

Matt Lewis wrote:
> 
> Al Getz wrote:
> > 
> > No, it's a routine id error im getting.
> 
> How many routine_id's are you using?  I just tried a dummy program with
> 10,000 routine_id's, and it worked.  What is the exact error you're getting?
> 
> > You'll have to be more specific about your program ie what's the 
> > name that appears in the archive list so i can look it up?
> > So you're saying that the debugger can be modified to provide
> > other output screens/windows/var lists, etc. during interactive
> > trace ?
> > 
> 
> Object Oriented Euphoria:
> <a
> href="http://www.rapideuphoria.com/ooeu-1.2.2.zip">http://www.rapideuphoria.com/ooeu-1.2.2.zip</a>
> 
> I'm saying that you can do whatever you want with it.  It currently allows
> you to do everything that RDS' trace does, plus more, like examining any
> part of any file (as long as it has 'with trace', otherwise the line is
> tossed out), and setting and removing breakpoints anywhere, dynamically.
> 
> Matt Lewis
> 

Hey there Matt,

The exact error message is "invalid routine id".
The file being run is "Demo_08_Basic.exw" that comes with the
WinClass library.
The error seems to occur due to a call to
-> function Wm_GETMINMAXINFO(atom ID, atom hWnd, atom uMsg, atom wParam, atom
lParam)
which is on line 647 in the file 'MessageMap.ew'...here's the routine:

function Wm_GETMINMAXINFO(atom ID, atom hWnd, atom uMsg, atom wParam, atom
lParam)
return
  call_func(Track:Events[ID][onGetMinMaxInfo],{ID,hWnd,uMsg,wParam,lParam})
end function
WMsg[#024]=routine_id("Wm_GETMINMAXINFO")

Now when i change it to print out the routing id like so:

function Wm_GETMINMAXINFO(atom ID, atom hWnd, atom uMsg, atom wParam, atom
lParam)
  ?Track:Events[ID][onGetMinMaxInfo]
return
  call_func(Track:Events[ID][onGetMinMaxInfo],{ID,hWnd,uMsg,wParam,lParam})
end function
WMsg[#024]=routine_id("Wm_GETMINMAXINFO")

it prints a numerical zero (0) which of course indicates it's trying
to call_func routine id 0, the first routine id.
This is very interesting that it says '0' is invalid, because that's
the first routine id picked by the interp (right ?) and yet the
program was able to call the function which is only accessable through
a call to a higher routine id number -->routine_id("Wm_GETMINMAXINFO")<--

There's no problem when run from v2.4 (full version) or v2.5 PD non-source
version.  The problem only occurs when using the Source code
in the Source directory of the PD download for v2.5 by calling from
the command line:
exw_25 eu.ex Demo_08_Basic.exw

(exw_25 is of course Igor's idea of renaming the v2.5 interp so that
either interp could be run).

I've copied all of the new include files to the directory and
even tried renaming by Euphoria25 directory to Euphoria and still
the same error, which doesnt occur with the actual

I've also tried running exw_25 directly from the command line:

exw_25 testonly.exw

and that worked too (testonly.exw=Demo_08_Basic.exw, renamed)


The above stated problem is completely repeatable, in that it
occurs every single time.

BTW, I also have an Eu environment var set to tell Euphoria that the
WinClass library is under the directory "Euphoria\Include\WinClass"
but i think if all the files are put in the same directory as the
source exw file it runs just as well.



Take care,
Al

And, good luck with your Euphoria programming!

My bumper sticker: "I brake for LED's"

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu