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

Re: Weird bug in GTK2 version of gvim 7

Expand Messages
  • Ali Akcaagac
    ... Can you provide a backtrace of that segfault ? Please compile vim as usually with the options: export CFLAGS= -O0 -g -Wl,--as-needed gdb vim7 run ..... it
    Message 1 of 16 , Apr 6, 2005
    • 0 Attachment
      On Wed, 2005-04-06 at 16:46 +0200, Michael Schaap wrote:
      > This leaves the bottom window in a weird state. For instance, the status
      > line is gone, scrolling doesn't work as it should, etc. Sometimes, it
      > even segmentation faults.

      Can you provide a backtrace of that segfault ? Please compile vim as
      usually with the options:

      export CFLAGS="-O0 -g -Wl,--as-needed"

      gdb vim7
      run

      ..... it now operates .... once the segfault occours you are back in the
      gdb prompt there you enter .....

      bt full

      and the stuff it dumps please report this one...
    • Bram Moolenaar
      ... I can reproduce it. Minimal things to reproduce are: set cmdheight=2 set lines=43 And then use the :split command. It s something with resizing the Vim
      Message 2 of 16 , Apr 6, 2005
      • 0 Attachment
        Michael Schaap wrote:

        > I've found a weird bug in the GTK2 version of Vim 7. (It's in the latest
        > CVS state, but has occurred for at least a few weeks.) It took some
        > effort to narrow it down from my organically grown, more than a decade
        > old, .[g]vimrc files ... I really need to clean those up some time. :-[
        >
        > To trigger it, do the following:
        >
        > 1) Create a file /tmp/tmpvimrc, with contents:
        >
        > set cmdheight=2
        > set laststatus=2
        > set lines=43
        >
        > 2) Start gvim with: gvim -u /tmp/tmpvimrc -U NONE
        >
        > 3) Press F1
        >
        > This leaves the bottom window in a weird state. For instance, the status
        > line is gone, scrolling doesn't work as it should, etc. Sometimes, it
        > even segmentation faults.
        >
        > Works fine with the terminal version of vim, and also with gvim 6.3.
        >
        > (As a workaround, I added these lines to the bottom of my .gvimrc
        > set laststatus=1
        > set laststatus=2
        > which do indeed prevent the problem from occurring.)

        I can reproduce it. Minimal things to reproduce are:

        set cmdheight=2
        set lines=43

        And then use the ":split" command.

        It's something with resizing the Vim window while starting up, the GTK
        code for this is very complicated.

        --
        hundred-and-one symptoms of being an internet addict:
        88. Every single time you press the 'Get mail' button...it does get new mail.

        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
        \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
        \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
      • Michael Schaap
        ... Yeah, it s definitely sizing related. I forgot to mention: if, after starting gvim, you manually resize the window vertically before pressing F1 (or
        Message 3 of 16 , Apr 6, 2005
        • 0 Attachment
          On 6-Apr-2005 19:08, Bram Moolenaar wrote:

          >Michael Schaap wrote:
          >
          >
          >
          >>I've found a weird bug in the GTK2 version of Vim 7. (It's in the latest
          >>CVS state, but has occurred for at least a few weeks.) It took some
          >>effort to narrow it down from my organically grown, more than a decade
          >>old, .[g]vimrc files ... I really need to clean those up some time. :-[
          >>
          >>To trigger it, do the following:
          >>
          >>1) Create a file /tmp/tmpvimrc, with contents:
          >>
          >>set cmdheight=2
          >>set laststatus=2
          >>set lines=43
          >>
          >>2) Start gvim with: gvim -u /tmp/tmpvimrc -U NONE
          >>
          >>3) Press F1
          >>
          >>This leaves the bottom window in a weird state. For instance, the status
          >>line is gone, scrolling doesn't work as it should, etc. Sometimes, it
          >>even segmentation faults.
          >>
          >>Works fine with the terminal version of vim, and also with gvim 6.3.
          >>
          >>(As a workaround, I added these lines to the bottom of my .gvimrc
          >>set laststatus=1
          >>set laststatus=2
          >>which do indeed prevent the problem from occurring.)
          >>
          >>
          >
          >I can reproduce it. Minimal things to reproduce are:
          >
          > set cmdheight=2
          > set lines=43
          >
          >And then use the ":split" command.
          >
          >It's something with resizing the Vim window while starting up, the GTK
          >code for this is very complicated.
          >
          >
          >
          Yeah, it's definitely sizing related. I forgot to mention: if, after
          starting gvim, you manually resize the window vertically before pressing
          F1 (or :split), things work fine. So it appears that the GTK code thinks
          that the window size is different than it actually is, and manually
          resizing it fixes its understanding. ":set lines?" always reports the
          right thing, though.

          – Michael
        • Michael Schaap
          ... Indeed. The problem actually occurs when using :split , and F1 is just a quick way to perform one. :-) ... It probably forces the code to recalculate
          Message 4 of 16 , Apr 6, 2005
          • 0 Attachment
            On 6-Apr-2005 17:56, A. J. Mechelynck wrote:

            > F1 is by default an alias for ":help<CR>".

            Indeed. The problem actually occurs when using ":split", and F1 is just
            a quick way to perform one. :-)

            > This is indeed a weird bug, especially since reasserting the
            > already-set value of 'laststatus' clears it.

            It probably forces the code to recalculate the window dimensions,
            thereby losing whatever value it is that is corrupted.

            > Of course, on my W32 system, I can't reproduce it: F1 works as
            > intended, splitting the window and displaying the first page of help
            > in approximately the top two thirds. Both status lines are there, the
            > top one saying "help.txt [help][RO]" and the bottom one "[No Name]".
            > No scrolling of course in the empty bottom window.
            >
            Indeed, it appears to be specific to the GTK version. The KDE version
            also doesn't have this bug.

            > I notice that -u means that 'compatible' is on, but I don't see how
            > this could be relevant.
            >
            Not relevant at all. Just a minimal test case, the problem occurs with
            my huge, nocompatible-setting .[g]vimrc files. :-)

            - Michael
          • Ankur Kotwal
            ... This was quite interesting. Is there anyway to produce a debugable gvim executable for Windows? One that I can step through in the Visual Studio debugger?
            Message 5 of 16 , Apr 6, 2005
            • 0 Attachment
              > Can you provide a backtrace of that segfault ? Please compile vim as
              > usually with the options:
              >
              > export CFLAGS="-O0 -g -Wl,--as-needed"
              >
              > gdb vim7
              > run

              This was quite interesting. Is there anyway to produce a debugable
              gvim executable for Windows? One that I can step through in the Visual
              Studio debugger? Does anyone have the build instructions?

              I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".

              PS: Sorry about the topic jacking.

              --
              Kind Regards,
              Ankur Kotwal
            • A. J. Mechelynck
              ... Check your makefile (Make_mvc.mak, right?). There may be a parameter like DEBUG=yes to add to your make command-line. If it s like with Make_bc5.mak and
              Message 6 of 16 , Apr 6, 2005
              • 0 Attachment
                Ankur Kotwal wrote:
                >>Can you provide a backtrace of that segfault ? Please compile vim as
                >>usually with the options:
                >>
                >>export CFLAGS="-O0 -g -Wl,--as-needed"
                >>
                >>gdb vim7
                >>run
                >
                >
                > This was quite interesting. Is there anyway to produce a debugable
                > gvim executable for Windows? One that I can step through in the Visual
                > Studio debugger? Does anyone have the build instructions?
                >
                > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                >
                > PS: Sorry about the topic jacking.
                >
                Check your makefile (Make_mvc.mak, right?). There may be a parameter
                like DEBUG=yes to add to your make command-line. If it's like with
                Make_bc5.mak and Make_cyg.mak (also for Windows, but using free
                compilers) it might produce an executable named gvimd.exe.

                If you want a ready-made (g)vimd.exe for Windows, point your browser to
                my Vim page http://users.skynet.be/antoine.mechelynck/vim/

                Best regards,
                Tony.
              • Ankur Kotwal
                Thanks! This worked a charm. ... -- Kind Regards, Ankur Kotwal
                Message 7 of 16 , Apr 6, 2005
                • 0 Attachment
                  Thanks! This worked a charm.

                  On Apr 7, 2005 12:29 PM, A. J. Mechelynck <antoine.mechelynck@...> wrote:
                  > Ankur Kotwal wrote:
                  > >>Can you provide a backtrace of that segfault ? Please compile vim as
                  > >>usually with the options:
                  > >>
                  > >>export CFLAGS="-O0 -g -Wl,--as-needed"
                  > >>
                  > >>gdb vim7
                  > >>run
                  > >
                  > >
                  > > This was quite interesting. Is there anyway to produce a debugable
                  > > gvim executable for Windows? One that I can step through in the Visual
                  > > Studio debugger? Does anyone have the build instructions?
                  > >
                  > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                  > >
                  > > PS: Sorry about the topic jacking.
                  > >
                  > Check your makefile (Make_mvc.mak, right?). There may be a parameter
                  > like DEBUG=yes to add to your make command-line. If it's like with
                  > Make_bc5.mak and Make_cyg.mak (also for Windows, but using free
                  > compilers) it might produce an executable named gvimd.exe.
                  >
                  > If you want a ready-made (g)vimd.exe for Windows, point your browser to
                  > my Vim page http://users.skynet.be/antoine.mechelynck/vim/
                  >
                  > Best regards,
                  > Tony.
                  >
                  >


                  --
                  Kind Regards,
                  Ankur Kotwal
                • Bram Moolenaar
                  ... Import Make_ivc.mak as a workspace into Visual Studio. -- From know your smileys : !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth ///
                  Message 8 of 16 , Apr 7, 2005
                  • 0 Attachment
                    Ankur Kotwal wrote:

                    > > Can you provide a backtrace of that segfault ? Please compile vim as
                    > > usually with the options:
                    > >
                    > > export CFLAGS="-O0 -g -Wl,--as-needed"
                    > >
                    > > gdb vim7
                    > > run
                    >
                    > This was quite interesting. Is there anyway to produce a debugable
                    > gvim executable for Windows? One that I can step through in the Visual
                    > Studio debugger? Does anyone have the build instructions?
                    >
                    > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".

                    Import Make_ivc.mak as a workspace into Visual Studio.

                    --
                    From "know your smileys":
                    !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth

                    /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                    /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                    \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                    \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                  • Ankur Kotwal
                    Bram, ... I m using Visual Studio .NET 2003 and unfortunately, I am unable to open the file as either a project or a solution. As soon as I try to open the
                    Message 9 of 16 , Apr 7, 2005
                    • 0 Attachment
                      Bram,

                      > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                      >
                      > Import Make_ivc.mak as a workspace into Visual Studio.

                      I'm using Visual Studio .NET 2003 and unfortunately, I am unable to
                      open the file as either a project or a solution. As soon as I try to
                      open the file, VS asks me if I want to convert the project. I of
                      course say yes but as soon as I do, I'm left facing a message box that
                      says "Cannot load the project due to a corrupt project file."

                      I assume that you are using an older version of Visual Studio. Are you
                      able to send me your .dsp and .dsw file? I can then import and upgrade
                      those files into VS .NET 2003. Thanks.


                      --
                      Kind Regards,
                      Ankur Kotwal
                    • Bram Moolenaar
                      ... You need to load it as a workspace, not as a project. Make sure the file has DOS fileformat. Unix fileformat doesn t work. ... These files are very
                      Message 10 of 16 , Apr 7, 2005
                      • 0 Attachment
                        Ankur Kotwal wrote:

                        > > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                        > >
                        > > Import Make_ivc.mak as a workspace into Visual Studio.
                        >
                        > I'm using Visual Studio .NET 2003 and unfortunately, I am unable to
                        > open the file as either a project or a solution. As soon as I try to
                        > open the file, VS asks me if I want to convert the project. I of
                        > course say yes but as soon as I do, I'm left facing a message box that
                        > says "Cannot load the project due to a corrupt project file."

                        You need to load it as a workspace, not as a project.
                        Make sure the file has DOS fileformat. Unix fileformat doesn't work.

                        > I assume that you are using an older version of Visual Studio. Are you
                        > able to send me your .dsp and .dsw file? I can then import and upgrade
                        > those files into VS .NET 2003. Thanks.

                        These files are very system-specific. They are in some strange format,
                        thus I don't even know what I would be sending out.

                        It's very disappointing the MS doesn't have a documented and backwards
                        compatible project description file. Clearly a vendor lock-in.

                        --
                        From "know your smileys":
                        |-P Reaction to unusually ugly C code

                        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                        /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                        \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                        \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                      • Ciaran McCreesh
                        [ Forwarding this for agriffis@gentoo.org because the list software hates him... ] Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT] ... On this topic,
                        Message 11 of 16 , Apr 7, 2005
                        • 0 Attachment
                          [ Forwarding this for agriffis@... because the list software
                          hates him... ]

                          Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT]
                          > It's something with resizing the Vim window while starting up, the GTK
                          > code for this is very complicated.

                          On this topic, starting gvim in the ion window manager reveals window
                          sizing issues with gtk2. I'm guessing race condition since it doesn't
                          always happen, in particular if the system is bogged down then it
                          works correctly.

                          http://gentoo.org/~agriffis/misc/vim-ion-gtk2.png

                          Aron
                        • Norbert Tretkowski
                          ... I ve also seen this with current gvim 6.3 and ion3, so that s not only gvim 7 related. Norbert
                          Message 12 of 16 , Apr 7, 2005
                          • 0 Attachment
                            * Ciaran McCreesh wrote:
                            > Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT]
                            > > It's something with resizing the Vim window while starting up, the
                            > > GTK code for this is very complicated.
                            >
                            > On this topic, starting gvim in the ion window manager reveals
                            > window sizing issues with gtk2. I'm guessing race condition since it
                            > doesn't always happen, in particular if the system is bogged down
                            > then it works correctly.

                            I've also seen this with current gvim 6.3 and ion3, so that's not only
                            gvim 7 related.

                            Norbert
                          • Ankur Kotwal
                            Bram, I was able to successfully import the makefile into visual studio. I hadn t thought to convert the format from unix to dos. I had hoped that Visual
                            Message 13 of 16 , Apr 7, 2005
                            • 0 Attachment
                              Bram,

                              I was able to successfully import the makefile into visual studio. I
                              hadn't thought to convert the format from unix to dos. I had hoped
                              that Visual Studio would be smart enough to cope with it. Obviously
                              not.

                              > These files are very system-specific. They are in some strange format,
                              > thus I don't even know what I would be sending out.

                              Actually the format isn't really all that bad. It's actually fairly
                              easy to edit by hand once you know your way around it. The .dsp file
                              is all thats required.

                              > It's very disappointing the MS doesn't have a documented and backwards
                              > compatible project description file. Clearly a vendor lock-in.

                              Well it seems that because I was able to import the makefile
                              successfully, MS is quite backwards compatible. Quite impressive given
                              that the file format was for MSVC 4 which is almost 10 years old (and
                              that the format has gone through many revisions over the various
                              versions).

                              Anyways, thanks for your help Bram. Now that I have a debuggable
                              environment, is there a repository of bugs that I can sink my teeth
                              into? I figure thats the best way to get involved in vim development
                              at least till I learn my way around the code.


                              --
                              Kind Regards,
                              Ankur Kotwal
                            • Bram Moolenaar
                              ... Visual Studio is only smart in some areas... ... Yeah, but the only way to make such a file is by hand-editing it. You can only generate it with MSVC 4,
                              Message 14 of 16 , Apr 8, 2005
                              • 0 Attachment
                                Ankur Kotwal wrote:

                                > I was able to successfully import the makefile into visual studio. I
                                > hadn't thought to convert the format from unix to dos. I had hoped
                                > that Visual Studio would be smart enough to cope with it. Obviously
                                > not.

                                Visual Studio is only smart in some areas...

                                > > It's very disappointing the MS doesn't have a documented and backwards
                                > > compatible project description file. Clearly a vendor lock-in.
                                >
                                > Well it seems that because I was able to import the makefile
                                > successfully, MS is quite backwards compatible. Quite impressive given
                                > that the file format was for MSVC 4 which is almost 10 years old (and
                                > that the format has gone through many revisions over the various
                                > versions).

                                Yeah, but the only way to make such a file is by hand-editing it. You
                                can only generate it with MSVC 4, which almost nobody has (you can't buy
                                it, you need to get an illegal copy).

                                > Anyways, thanks for your help Bram. Now that I have a debuggable
                                > environment, is there a repository of bugs that I can sink my teeth
                                > into? I figure thats the best way to get involved in vim development
                                > at least till I learn my way around the code.

                                ":help todo". You might want to get a Vim 7 snapshot, because some
                                things were fixed in Vim 7 but too risky to include in Vim 6.3.

                                --
                                From "know your smileys":
                                <>:-) Bishop

                                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                                \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                              Your message has been successfully submitted and would be delivered to recipients shortly.