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

Weird bug in GTK2 version of gvim 7

Expand Messages
  • Michael Schaap
    Hi, 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
    Message 1 of 16 , Apr 6 7:46 AM
    • 0 Attachment
      Hi,

      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.)

      Best regards,

      – Michael
    • A. J. Mechelynck
      ... F1 is by default an alias for :help . This is indeed a weird bug, especially since reasserting the already-set value of laststatus clears it. Of
      Message 2 of 16 , Apr 6 8:56 AM
      • 0 Attachment
        Michael Schaap wrote:
        > Hi,
        >
        > 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.)
        >
        > Best regards,
        >
        > – Michael
        >
        >
        >
        F1 is by default an alias for ":help<CR>". This is indeed a weird bug,
        especially since reasserting the already-set value of 'laststatus'
        clears it. 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.

        I notice that -u means that 'compatible' is on, but I don't see how this
        could be relevant.


        Best regards,
        Tony.
      • 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 3 of 16 , Apr 6 8:59 AM
        • 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 4 of 16 , Apr 6 10:08 AM
          • 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 5 of 16 , Apr 6 2:35 PM
            • 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 6 of 16 , Apr 6 2:41 PM
              • 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 7 of 16 , Apr 6 7:20 PM
                • 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 8 of 16 , Apr 6 7:29 PM
                  • 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 9 of 16 , Apr 6 9:25 PM
                    • 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 10 of 16 , Apr 7 2:41 AM
                      • 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 11 of 16 , Apr 7 5:13 AM
                        • 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 12 of 16 , Apr 7 6:32 AM
                          • 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 13 of 16 , Apr 7 9:06 AM
                            • 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 14 of 16 , Apr 7 9:41 AM
                              • 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 15 of 16 , Apr 7 4:26 PM
                                • 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 16 of 16 , Apr 8 2:42 AM
                                  • 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.