Loading ...
Sorry, an error occurred while loading the content.

Odd debugger behavior

Expand Messages
  • David Jenkins
    Happy New Year everyone! I ve been testing a change to a feature that includes a call to an external feature. I ve set a breakpoint in EiffelStudio 6.6
    Message 1 of 7 , Jan 1, 2011
    • 0 Attachment
      Happy New Year everyone!

      I've been testing a change to a feature that includes a call to an "external" feature. I've set a breakpoint in EiffelStudio 6.6 (Linux) several instructions before the external call, and also on the "end" instruction of the external call, and then Run the application. EiffelStudio correctly stops on the breakpoint, but when I step through (F10), the debugger appears to execute the external call one instruction before it should (the breakpoint in the external call stops execution), then skips several instructions and exits before it should. An assignment several instructions following the external call that should succeed appears not to execute. I've never seen EiffelStudio behave like this. It must have something to do with external call, which appears to execute successfully (at least, no errors are thrown).

      Any suggestions what I could do to correct this?

      David Jenkins
    • Peter Gummer
      ... Maybe re-freeze the project? - Peter Gummer
      Message 2 of 7 , Jan 1, 2011
      • 0 Attachment
        David Jenkins wrote:

        > Any suggestions what I could do to correct this?

        Maybe re-freeze the project?

        - Peter Gummer
      • Jocelyn Fiat
        It would help, if you show the related Eiffel code. Is this - a multithreaded system? - a graphical (vision2) system? Is this reproducible, even after
        Message 3 of 7 , Jan 3, 2011
        • 0 Attachment
          It would help, if you show the related Eiffel code.
          Is this
          - a multithreaded system?
          - a graphical (vision2) system?

          Is this reproducible, even after recompiling from scratch?

          -- Jocelyn

          On Sat, Jan 1, 2011 at 11:51 PM, Peter Gummer <p-gummer@...> wrote:
          > David Jenkins wrote:
          >
          >> Any suggestions what I could do to correct this?
          >
          > Maybe re-freeze the project?
          >
          > - Peter Gummer
          >
          >
          > ------------------------------------
          >
          > Yahoo! Groups Links
          >
          >
          >
          >



          --
          Jocelyn
          ------------------------------------------------------------------------
          Eiffel Software
          805-685-1006
          http://www.eiffel.com
          Customer support: http://support.eiffel.com
          User group: http://groups.eiffel.com/join
          ------------------------------------------------------------------------
        • David Jenkins
          Hello Jocelyn, Thanks for the reply. Following is the code in question. I m trying to debug a fix to the way vision2 handles scroll bars in an
          Message 4 of 7 , Jan 3, 2011
          • 0 Attachment
            Hello Jocelyn,

            Thanks for the reply. Following is the code in question. I'm trying to
            debug a fix to the way vision2 handles scroll bars in an
            EV_SCROLLABLE_AREA. (Works correctly on Windows, not on Linux.) The
            routine I'm debugging is {EV_SCROLLABLE_AREA_IMP}.extend.

            I've marked in the logic below the lines executed as I step through with
            "==>" and those skipped as "!!>". The argument passed to the routine is
            an instance of EV_DRAWING_AREA. Whether I've coded this correctly or not
            (suggestions for improvement gladly accepted), I was expecting the
            debugger to behave as it otherwise always does. It appears like the
            debugger gets one or two instructions ahead of itself. (This will
            probably look terrible once I post it; I will create a better formatted
            document to send you if you prefer.)

            extend (an_item: like item)
            -- Adding the single widget to a scrollable area depends on the
            type of widget being added.
            -- If the widget supports its own scroll bars, then it should be
            added using "gtk_container_add".
            -- If not, then it must be added to a viewport, which is then
            added.
            -- "gtk_scrolled_window_add_with_viewport" performs this
            function.
            local
            supports_scrolling: BOOLEAN
            do
            ==> if attached an_item as l_an_item then
            ==> check
            -- workbench jumps to "gtk_widget_set_scroll_adjustment" routine
            -- before executing this line
            ==> attached {EV_WIDGET_IMP}l_an_item.implementation
            as l_an_item_imp then
            !!> supports_scrolling :=
            {EV_GTK_EXTERNALS}.gtk_widget_set_scroll_adjustments(l_an_item_imp.c_obj\
            ect,null,null)
            !!> if supports_scrolling then
            ==> replace(an_item) -- skips to this but doesn't
            call "replace"
            else
            !!> if attached item as l_item then
            !!> check attached
            {EV_WIDGET_IMP}l_item.implementation as l_item_imp then
            !!> on_removed_item(l_item_imp) -- stops
            here but executes
            --
            "gtk_scrolled_window_add_with_viewport" next
            !!>
            gtk_container_remove(container_widget,l_item_imp.c_object) -- stops
            -- here but
            executes "on_new_item"
            end
            end
            !!>
            {EV_GTK_EXTERNALS}.gtk_scrolled_window_add_with_viewport(container_widge\
            t,l_an_item_imp.c_object)
            on_new_item(l_an_item_imp) -- stops but doesn't
            execute it
            !!> item := an_item -- completely skips
            end
            end
            end
            end

            --- In eiffel_software@yahoogroups.com, Jocelyn Fiat <jfiat@...> wrote:
            >
            > It would help, if you show the related Eiffel code.
            > Is this
            > - a multithreaded system?
            > - a graphical (vision2) system?
            >
            > Is this reproducible, even after recompiling from scratch?
            >
            > -- Jocelyn
            >
            > On Sat, Jan 1, 2011 at 11:51 PM, Peter Gummer p-gummer@... wrote:
            > > David Jenkins wrote:
            > >
            > >> Any suggestions what I could do to correct this?
            > >
            > > Maybe re-freeze the project?
            > >
            > > - Peter Gummer
            > >
            > >
            > > ------------------------------------
            > >
            > > Yahoo! Groups Links
            > >
            > >
            > >
            > >
            >
            >
            >
            > --
            > Jocelyn
            >
            ------------------------------------------------------------------------
            > Eiffel Software
            > 805-685-1006
            > http://www.eiffel.com
            > Customer support: http://support.eiffel.com
            > User group: http://groups.eiffel.com/join
            >
            ------------------------------------------------------------------------
            >
          • Emmanuel Stapf [ES]
            There was an issue with the debugger and the new check instructions which is used below. EiffelStudio 6.7 should fix this. Could you try against 6.7 as I
            Message 5 of 7 , Jan 3, 2011
            • 0 Attachment
              There was an issue with the debugger and the new check instructions which is used
              below. EiffelStudio 6.7 should fix this. Could you try against 6.7 as I believe
              you said you were using 6.6?

              Thanks,
              Manu

              > -----Original Message-----
              > From: eiffel_software@yahoogroups.com
              > [mailto:eiffel_software@yahoogroups.com] On Behalf Of David Jenkins
              > Sent: Monday, January 03, 2011 5:55 AM
              > To: eiffel_software@yahoogroups.com
              > Subject: [eiffel_software] Re: Odd debugger behavior
              >
              > Hello Jocelyn,
              >
              > Thanks for the reply. Following is the code in question. I'm trying to
              > debug a fix to the way vision2 handles scroll bars in an
              > EV_SCROLLABLE_AREA. (Works correctly on Windows, not on Linux.) The
              > routine I'm debugging is {EV_SCROLLABLE_AREA_IMP}.extend.
              >
              > I've marked in the logic below the lines executed as I step through with
              > "==>" and those skipped as "!!>". The argument passed to the routine is
              > an instance of EV_DRAWING_AREA. Whether I've coded this correctly or not
              > (suggestions for improvement gladly accepted), I was expecting the
              > debugger to behave as it otherwise always does. It appears like the
              > debugger gets one or two instructions ahead of itself. (This will
              > probably look terrible once I post it; I will create a better formatted
              > document to send you if you prefer.)
              >
              > extend (an_item: like item)
              > -- Adding the single widget to a scrollable area depends on the
              > type of widget being added.
              > -- If the widget supports its own scroll bars, then it should be
              > added using "gtk_container_add".
              > -- If not, then it must be added to a viewport, which is then
              > added.
              > -- "gtk_scrolled_window_add_with_viewport" performs this
              > function.
              > local
              > supports_scrolling: BOOLEAN
              > do
              > ==> if attached an_item as l_an_item then
              > ==> check
              > -- workbench jumps to "gtk_widget_set_scroll_adjustment" routine
              > -- before executing this line
              > ==> attached {EV_WIDGET_IMP}l_an_item.implementation
              > as l_an_item_imp then
              > !!> supports_scrolling :=
              > {EV_GTK_EXTERNALS}.gtk_widget_set_scroll_adjustments(l_an_item_imp.c_obj\
              > ect,null,null)
              > !!> if supports_scrolling then
              > ==> replace(an_item) -- skips to this but doesn't
              > call "replace"
              > else
              > !!> if attached item as l_item then
              > !!> check attached
              > {EV_WIDGET_IMP}l_item.implementation as l_item_imp then
              > !!> on_removed_item(l_item_imp) -- stops
              > here but executes
              > --
              > "gtk_scrolled_window_add_with_viewport" next
              > !!>
              > gtk_container_remove(container_widget,l_item_imp.c_object) -- stops
              > -- here but
              > executes "on_new_item"
              > end
              > end
              > !!>
              > {EV_GTK_EXTERNALS}.gtk_scrolled_window_add_with_viewport(container_widge\
              > t,l_an_item_imp.c_object)
              > on_new_item(l_an_item_imp) -- stops but doesn't
              > execute it
              > !!> item := an_item -- completely skips
              > end
              > end
              > end
              > end
              >
              > --- In eiffel_software@yahoogroups.com, Jocelyn Fiat <jfiat@...> wrote:
              > >
              > > It would help, if you show the related Eiffel code.
              > > Is this
              > > - a multithreaded system?
              > > - a graphical (vision2) system?
              > >
              > > Is this reproducible, even after recompiling from scratch?
              > >
              > > -- Jocelyn
              > >
              > > On Sat, Jan 1, 2011 at 11:51 PM, Peter Gummer p-gummer@... wrote:
              > > > David Jenkins wrote:
              > > >
              > > >> Any suggestions what I could do to correct this?
              > > >
              > > > Maybe re-freeze the project?
              > > >
              > > > - Peter Gummer
              > > >
              > > >
              > > > ------------------------------------
              > > >
              > > > Yahoo! Groups Links
              > > >
              > > >
              > > >
              > > >
              > >
              > >
              > >
              > > --
              > > Jocelyn
              > >
              > ------------------------------------------------------------------------
              > > Eiffel Software
              > > 805-685-1006
              > > http://www.eiffel.com
              > > Customer support: http://support.eiffel.com
              > > User group: http://groups.eiffel.com/join
              > >
              > ------------------------------------------------------------------------
              > >
              >
              >
              >
              >
              > ------------------------------------
              >
              > Yahoo! Groups Links
              >
              >
              >
            • David Jenkins
              I ve been procrastinating about upgrading to 6.7. Now I have no more excuses! I will upgrade right away and let you know the results. ... which is used ... I
              Message 6 of 7 , Jan 3, 2011
              • 0 Attachment
                I've been procrastinating about upgrading to 6.7. Now I have no more
                excuses! I will upgrade right away and let you know the results.

                --- In eiffel_software@yahoogroups.com, "Emmanuel Stapf [ES]"
                <manus@...> wrote:
                >
                > There was an issue with the debugger and the new check instructions
                which is used
                > below. EiffelStudio 6.7 should fix this. Could you try against 6.7 as
                I believe
                > you said you were using 6.6?
                >
                > Thanks,
                > Manu
                >
                > > -----Original Message-----
                > > From: eiffel_software@yahoogroups.com
                > > [mailto:eiffel_software@yahoogroups.com] On Behalf Of David Jenkins
                > > Sent: Monday, January 03, 2011 5:55 AM
                > > To: eiffel_software@yahoogroups.com
                > > Subject: [eiffel_software] Re: Odd debugger behavior
                > >
                > > Hello Jocelyn,
                > >
                > > Thanks for the reply. Following is the code in question. I'm trying
                to
                > > debug a fix to the way vision2 handles scroll bars in an
                > > EV_SCROLLABLE_AREA. (Works correctly on Windows, not on Linux.) The
                > > routine I'm debugging is {EV_SCROLLABLE_AREA_IMP}.extend.
                > >
                > > I've marked in the logic below the lines executed as I step through
                with
                > > "==>" and those skipped as "!!>". The argument passed to the routine
                is
                > > an instance of EV_DRAWING_AREA. Whether I've coded this correctly or
                not
                > > (suggestions for improvement gladly accepted), I was expecting the
                > > debugger to behave as it otherwise always does. It appears like the
                > > debugger gets one or two instructions ahead of itself. (This will
                > > probably look terrible once I post it; I will create a better
                formatted
                > > document to send you if you prefer.)
                > >
                > > extend (an_item: like item)
                > > -- Adding the single widget to a scrollable area depends on
                the
                > > type of widget being added.
                > > -- If the widget supports its own scroll bars, then it
                should be
                > > added using "gtk_container_add".
                > > -- If not, then it must be added to a viewport, which is
                then
                > > added.
                > > -- "gtk_scrolled_window_add_with_viewport" performs this
                > > function.
                > > local
                > > supports_scrolling: BOOLEAN
                > > do
                > > ==> if attached an_item as l_an_item then
                > > ==> check
                > > -- workbench jumps to "gtk_widget_set_scroll_adjustment" routine
                > > -- before executing this line
                > > ==> attached
                {EV_WIDGET_IMP}l_an_item.implementation
                > > as l_an_item_imp then
                > > !!> supports_scrolling :=
                > >
                {EV_GTK_EXTERNALS}.gtk_widget_set_scroll_adjustments(l_an_item_imp.c_obj\
                \
                > > ect,null,null)
                > > !!> if supports_scrolling then
                > > ==> replace(an_item) -- skips to this but
                doesn't
                > > call "replace"
                > > else
                > > !!> if attached item as l_item then
                > > !!> check attached
                > > {EV_WIDGET_IMP}l_item.implementation as l_item_imp then
                > > !!> on_removed_item(l_item_imp) -- stops
                > > here but executes
                > > --
                > > "gtk_scrolled_window_add_with_viewport" next
                > > !!>
                > > gtk_container_remove(container_widget,l_item_imp.c_object) -- stops
                > > -- here
                but
                > > executes "on_new_item"
                > > end
                > > end
                > > !!>
                > >
                {EV_GTK_EXTERNALS}.gtk_scrolled_window_add_with_viewport(container_widge\
                \
                > > t,l_an_item_imp.c_object)
                > > on_new_item(l_an_item_imp) -- stops but
                doesn't
                > > execute it
                > > !!> item := an_item -- completely skips
                > > end
                > > end
                > > end
                > > end
                > >
                > > --- In eiffel_software@yahoogroups.com, Jocelyn Fiat jfiat@ wrote:
                > > >
                > > > It would help, if you show the related Eiffel code.
                > > > Is this
                > > > - a multithreaded system?
                > > > - a graphical (vision2) system?
                > > >
                > > > Is this reproducible, even after recompiling from scratch?
                > > >
                > > > -- Jocelyn
                > > >
                > > > On Sat, Jan 1, 2011 at 11:51 PM, Peter Gummer p-gummer@ wrote:
                > > > > David Jenkins wrote:
                > > > >
                > > > >> Any suggestions what I could do to correct this?
                > > > >
                > > > > Maybe re-freeze the project?
                > > > >
                > > > > - Peter Gummer
                > > > >
                > > > >
                > > > > ------------------------------------
                > > > >
                > > > > Yahoo! Groups Links
                > > > >
                > > > >
                > > > >
                > > > >
                > > >
                > > >
                > > >
                > > > --
                > > > Jocelyn
                > > >
                > >
                ------------------------------------------------------------------------
                > > > Eiffel Software
                > > > 805-685-1006
                > > > http://www.eiffel.com
                > > > Customer support: http://support.eiffel.com
                > > > User group: http://groups.eiffel.com/join
                > > >
                > >
                ------------------------------------------------------------------------
                > > >
                > >
                > >
                > >
                > >
                > > ------------------------------------
                > >
                > > Yahoo! Groups Links
                > >
                > >
                > >
                >
              • David Jenkins
                Manu and Jocelyn, Release 6.7 works correctly when debugging the code I posted. It must have been the issue with check .. then that you mentioned. Thank you
                Message 7 of 7 , Jan 4, 2011
                • 0 Attachment
                  Manu and Jocelyn,

                  Release 6.7 works correctly when debugging the code I posted. It must
                  have been the issue with "check .. then" that you mentioned. Thank you
                  for the help.

                  --- In eiffel_software@yahoogroups.com, "David Jenkins"
                  <djenkins31751@...> wrote:
                  >
                  > I've been procrastinating about upgrading to 6.7. Now I have no more
                  > excuses! I will upgrade right away and let you know the results.
                  >
                  > --- In eiffel_software@yahoogroups.com, "Emmanuel Stapf [ES]"
                  > manus@ wrote:
                  > >
                  > > There was an issue with the debugger and the new check instructions
                  > which is used
                  > > below. EiffelStudio 6.7 should fix this. Could you try against 6.7
                  as
                  > I believe
                  > > you said you were using 6.6?
                  > >
                  > > Thanks,
                  > > Manu
                  > >
                  > > > -----Original Message-----
                  > > > From: eiffel_software@yahoogroups.com
                  > > > [mailto:eiffel_software@yahoogroups.com] On Behalf Of David
                  Jenkins
                  > > > Sent: Monday, January 03, 2011 5:55 AM
                  > > > To: eiffel_software@yahoogroups.com
                  > > > Subject: [eiffel_software] Re: Odd debugger behavior
                  > > >
                  > > > Hello Jocelyn,
                  > > >
                  > > > Thanks for the reply. Following is the code in question. I'm
                  trying
                  > to
                  > > > debug a fix to the way vision2 handles scroll bars in an
                  > > > EV_SCROLLABLE_AREA. (Works correctly on Windows, not on Linux.)
                  The
                  > > > routine I'm debugging is {EV_SCROLLABLE_AREA_IMP}.extend.
                  > > >
                  > > > I've marked in the logic below the lines executed as I step
                  through
                  > with
                  > > > "==>" and those skipped as "!!>". The argument passed to the
                  routine
                  > is
                  > > > an instance of EV_DRAWING_AREA. Whether I've coded this correctly
                  or
                  > not
                  > > > (suggestions for improvement gladly accepted), I was expecting the
                  > > > debugger to behave as it otherwise always does. It appears like
                  the
                  > > > debugger gets one or two instructions ahead of itself. (This will
                  > > > probably look terrible once I post it; I will create a better
                  > formatted
                  > > > document to send you if you prefer.)
                  > > >
                  > > > extend (an_item: like item)
                  > > > -- Adding the single widget to a scrollable area depends
                  on
                  > the
                  > > > type of widget being added.
                  > > > -- If the widget supports its own scroll bars, then it
                  > should be
                  > > > added using "gtk_container_add".
                  > > > -- If not, then it must be added to a viewport, which is
                  > then
                  > > > added.
                  > > > -- "gtk_scrolled_window_add_with_viewport" performs this
                  > > > function.
                  > > > local
                  > > > supports_scrolling: BOOLEAN
                  > > > do
                  > > > ==> if attached an_item as l_an_item then
                  > > > ==> check
                  > > > -- workbench jumps to "gtk_widget_set_scroll_adjustment" routine
                  > > > -- before executing this line
                  > > > ==> attached
                  > {EV_WIDGET_IMP}l_an_item.implementation
                  > > > as l_an_item_imp then
                  > > > !!> supports_scrolling :=
                  > > >
                  >
                  {EV_GTK_EXTERNALS}.gtk_widget_set_scroll_adjustments(l_an_item_imp.c_obj\
                  \
                  > \
                  > > > ect,null,null)
                  > > > !!> if supports_scrolling then
                  > > > ==> replace(an_item) -- skips to this but
                  > doesn't
                  > > > call "replace"
                  > > > else
                  > > > !!> if attached item as l_item then
                  > > > !!> check attached
                  > > > {EV_WIDGET_IMP}l_item.implementation as l_item_imp then
                  > > > !!> on_removed_item(l_item_imp) --
                  stops
                  > > > here but executes
                  > > > --
                  > > > "gtk_scrolled_window_add_with_viewport" next
                  > > > !!>
                  > > > gtk_container_remove(container_widget,l_item_imp.c_object) --
                  stops
                  > > > --
                  here
                  > but
                  > > > executes "on_new_item"
                  > > > end
                  > > > end
                  > > > !!>
                  > > >
                  >
                  {EV_GTK_EXTERNALS}.gtk_scrolled_window_add_with_viewport(container_widge\
                  \
                  > \
                  > > > t,l_an_item_imp.c_object)
                  > > > on_new_item(l_an_item_imp) -- stops but
                  > doesn't
                  > > > execute it
                  > > > !!> item := an_item -- completely skips
                  > > > end
                  > > > end
                  > > > end
                  > > > end
                  > > >
                  > > > --- In eiffel_software@yahoogroups.com, Jocelyn Fiat jfiat@ wrote:
                  > > > >
                  > > > > It would help, if you show the related Eiffel code.
                  > > > > Is this
                  > > > > - a multithreaded system?
                  > > > > - a graphical (vision2) system?
                  > > > >
                  > > > > Is this reproducible, even after recompiling from scratch?
                  > > > >
                  > > > > -- Jocelyn
                  > > > >
                  > > > > On Sat, Jan 1, 2011 at 11:51 PM, Peter Gummer p-gummer@ wrote:
                  > > > > > David Jenkins wrote:
                  > > > > >
                  > > > > >> Any suggestions what I could do to correct this?
                  > > > > >
                  > > > > > Maybe re-freeze the project?
                  > > > > >
                  > > > > > - Peter Gummer
                  > > > > >
                  > > > > >
                  > > > > > ------------------------------------
                  > > > > >
                  > > > > > Yahoo! Groups Links
                  > > > > >
                  > > > > >
                  > > > > >
                  > > > > >
                  > > > >
                  > > > >
                  > > > >
                  > > > > --
                  > > > > Jocelyn
                  > > > >
                  > > >
                  >
                  ------------------------------------------------------------------------
                  > > > > Eiffel Software
                  > > > > 805-685-1006
                  > > > > http://www.eiffel.com
                  > > > > Customer support: http://support.eiffel.com
                  > > > > User group: http://groups.eiffel.com/join
                  > > > >
                  > > >
                  >
                  ------------------------------------------------------------------------
                  > > > >
                  > > >
                  > > >
                  > > >
                  > > >
                  > > > ------------------------------------
                  > > >
                  > > > Yahoo! Groups Links
                  > > >
                  > > >
                  > > >
                  > >
                  >
                Your message has been successfully submitted and would be delivered to recipients shortly.