www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - help posting a bug

reply Ant <duitoolkit yahoo.ca> writes:
this is what I get from a debug session:

(gdb) stepi
0x0804e0f9      359                                             dd.foo();
(gdb) stepi
0x0804e0fb      359                                             dd.foo();
(gdb) stepi
0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()

dd is in fact an instance of class Window in module gtk.Window.
DMD got it right so far.

but why would the method void move(int,int) be called
instead of the method void foo() ????????????????

I posted a similar problem about a year and a half ago just to be ignored.

so help me: how do I post this in the bugs group?

Ant

PS what happens is that the window I have on the screen is
actually moved to somewhere else,
it actually disappears from the screen.
Feb 23 2006
next sibling parent Derek Parnell <derek psych.ward> writes:
On Fri, 24 Feb 2006 00:36:31 +0000, Ant wrote:

 this is what I get from a debug session:
 
 (gdb) stepi
 0x0804e0f9      359                                             dd.foo();
 (gdb) stepi
 0x0804e0fb      359                                             dd.foo();
 (gdb) stepi
 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
 
 dd is in fact an instance of class Window in module gtk.Window.
 DMD got it right so far.
 
 but why would the method void move(int,int) be called
 instead of the method void foo() ????????????????
 
 I posted a similar problem about a year and a half ago just to be ignored.
 
 so help me: how do I post this in the bugs group?

There is not enough information in this post to get any help but guesses. Have you got some source code we can look at? I see from the DUI forum that you can't reduce the size of the source code to narrow it down. Well, maybe someone else can if you don't know how to - or are you saying that if you delete *anything* from the source, the problem goes away? If not, just keep removing things until the problem does go away. That will give you a clue or two about what might be causing it. (Take a full back up first, of course). -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocracy!" 24/02/2006 5:17:37 PM
Feb 23 2006
prev sibling next sibling parent reply John Reimer <terminal.node gmail.com> writes:
Ant wrote:
 this is what I get from a debug session:
 
 (gdb) stepi
 0x0804e0f9      359                                             dd.foo();
 (gdb) stepi
 0x0804e0fb      359                                             dd.foo();
 (gdb) stepi
 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
 
 dd is in fact an instance of class Window in module gtk.Window.
 DMD got it right so far.
 
 but why would the method void move(int,int) be called
 instead of the method void foo() ????????????????

It's calling method dd.foo() from inside method move(), I believe.
 I posted a similar problem about a year and a half ago just to be ignored.
 
 so help me: how do I post this in the bugs group?
 
 Ant
 
 PS what happens is that the window I have on the screen is
 actually moved to somewhere else,
 it actually disappears from the screen.

Need a few more details: OS, DUIT version, DMD version ; how can we reproduce this? do we just download the version from svn? What steps do we take to compile and discover the problem? Can you step us through what leads to the error? -JJR
Feb 23 2006
parent reply Ant <duitoolkit yahoo.ca> writes:
John Reimer wrote:
 Ant wrote:
 this is what I get from a debug session:

 (gdb) stepi
 0x0804e0f9      359                                             dd.foo();
 (gdb) stepi
 0x0804e0fb      359                                             dd.foo();
 (gdb) stepi
 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()

 dd is in fact an instance of class Window in module gtk.Window.
 DMD got it right so far.

 but why would the method void move(int,int) be called
 instead of the method void foo() ????????????????

It's calling method dd.foo() from inside method move(), I believe.
 I posted a similar problem about a year and a half ago just to be 
 ignored.

 so help me: how do I post this in the bugs group?

 Ant

 PS what happens is that the window I have on the screen is
 actually moved to somewhere else,
 it actually disappears from the screen.

Need a few more details: OS, DUIT version, DMD version ; how can we reproduce this? do we just download the version from svn? What steps do we take to compile and discover the problem? Can you step us through what leads to the error? -JJR

get http://svn.dsource.org/projects/dui/trunk/dyndui/DuitBUG.tar.gz ad see the README* for compilation and more details... I have no more ideas... Ant
Feb 25 2006
parent John Reimer <terminal.node gmail.com> writes:
Ant wrote:

 get
 http://svn.dsource.org/projects/dui/trunk/dyndui/DuitBUG.tar.gz
 ad see the README* for compilation and more details...
 
 I have no more ideas...
 
 Ant
 

Thanks, Ant. I downloaded it this morning, but have been busy at work and such. I'll try to test it when I get the chance. -JJR
Feb 25 2006
prev sibling next sibling parent Ant <Ant_member pathlink.com> writes:
In article <dtm5t9$30kf$1 digitaldaemon.com>, Ant says...
this is what I get from a debug session:

(gdb) stepi
0x0804e0f9      359                                             dd.foo();
(gdb) stepi
0x0804e0fb      359                                             dd.foo();
(gdb) stepi
0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()

dd is in fact an instance of class Window in module gtk.Window.
DMD got it right so far.

but why would the method void move(int,int) be called
instead of the method void foo() ????????????????

I posted a similar problem about a year and a half ago just to be ignored.

so help me: how do I post this in the bugs group?

Ant

Thank you, Derek and John. I'll review this and try to post more details. Ant
Feb 24 2006
prev sibling parent reply Ant <duitoolkit yahoo.ca> writes:
Ant wrote:
 this is what I get from a debug session:
 
 (gdb) stepi
 0x0804e0f9      359                                             dd.foo();
 (gdb) stepi
 0x0804e0fb      359                                             dd.foo();
 (gdb) stepi
 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
 
 dd is in fact an instance of class Window in module gtk.Window.
 DMD got it right so far.
 
 but why would the method void move(int,int) be called
 instead of the method void foo() ????????????????
 

Seems I found the problem with this. moving the import declarations to the module level (from the class body) seems to do the trick. I originally had all imports a the module level but that created another problem (don't remember what). I'll move all import to module level and try to see if the original problem can be solved. Thank you all for your help, specially Lars Ivar and h3r3tic! Ant PS I asked Walter (about 2 year ago) if imports on the class body should be used or were just a side effect - he completely ignore the question.
Feb 26 2006
parent John Reimer <John_member pathlink.com> writes:
In article <dtu7f2$gst$1 digitaldaemon.com>, Ant says...

PS I asked Walter (about 2 year ago) if imports on the class body
should be used or were just a side effect - he completely ignore the question.

There have been several discussions concerning that practice since then, Ant (perhaps you missed them? :) ) Many of these discussions were somewhat heated because the name lookup rules seemed counter-intuitive. If I recall correctly, Mango and the original DWT port ran into this issue too. Walter responded something to the effect that imports were not designed to be placed in class bodies, so we were "on our own" if we decided to put them there. Glad you were able to get this fixed, though! Thanks also to Lars and Tom for helping out. -JJR
Feb 27 2006