Re: 'trace(1)' doesnt work under Eu 2.5 Source?
- Posted by Al Getz <Xaxo at aol.com> Dec 23, 2004
- 659 views
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"