non-virtual thunk is?

Discussion in 'C++' started by Obnoxious User, Jul 3, 2007.

  1. Obnoxious User, Jul 3, 2007
    #1
    1. Advertising

  2. Obnoxious User

    Guest

    Can you explain what a non-virtual thunk is? I have been getting
    this error when trying to link libraries that I have built with
    optimization.




    --
    Regards
    Mayank Jain
    Niksun
    9818390836
    www.mayankjain.110mb.com
    , Jul 3, 2007
    #2
    1. Advertising

  3. Obnoxious User

    Guest

    On Jul 3, 1:40 pm, ""
    <> wrote:
    > Can you explain what a non-virtual thunk is? I have been getting
    > this error when trying to link libraries that I have built with
    > optimization.
    >

    By any chance, does this happen specifically when you change -Os to -
    O3 when building
    the libraries? Just a shot in the dark...
    , Jul 3, 2007
    #3
  4. Obnoxious User

    Guest

    On Jul 4, 12:42 am, wrote:
    > On Jul 3, 1:40 pm, ""<> wrote:
    > > Can you explain what a non-virtual thunk is? I have been getting
    > > this error when trying to link libraries that I have built with
    > > optimization.

    >
    > By any chance, does this happen specifically when you change -Os to -
    > O3 when building
    > the libraries? Just a shot in the dark...


    Hi

    Thanks a lot for the try

    When I was building on 64-bit machine I got the error "Non virtual
    thunk".
    So we added an optimization flag "-O2" to our makefiles, compiled all
    the libraries as well as the code again and we got rid of this error.
    But JI got a new error of "virtual memory exhausted: Cannot allocate
    memory".
    Then we added "-O1" flag after "-O2" (-O2 -O1) flag in the makefiles,
    rebuild everything and we were able to build out code as well as the
    package.

    Now the binaries that I have build are running fine but when I try to
    debug these binaries with gdb , the gdb gives the error
    warning: Unable to get location for thread creation breakpoint:
    generic

    error [New LWP 100106] Cannot find thread, Thread ID=1, generic error

    Regards
    Mayank Jain
    Niksun
    9818390836
    www.mayankjain.110mb.com
    , Jul 5, 2007
    #4
  5. On 2007-07-05 14:23, wrote:
    > On Jul 4, 12:42 am, wrote:
    >> On Jul 3, 1:40 pm, ""<> wrote:
    >> > Can you explain what a non-virtual thunk is? I have been getting
    >> > this error when trying to link libraries that I have built with
    >> > optimization.

    >>
    >> By any chance, does this happen specifically when you change -Os to -
    >> O3 when building
    >> the libraries? Just a shot in the dark...

    >
    > Hi
    >
    > Thanks a lot for the try
    >
    > When I was building on 64-bit machine I got the error "Non virtual
    > thunk".
    > So we added an optimization flag "-O2" to our makefiles, compiled all
    > the libraries as well as the code again and we got rid of this error.
    > But JI got a new error of "virtual memory exhausted: Cannot allocate
    > memory".
    > Then we added "-O1" flag after "-O2" (-O2 -O1) flag in the makefiles,
    > rebuild everything and we were able to build out code as well as the
    > package.


    We are moving a bit off topic here, more help should be sought in groups
    for the GNU toolchain (gcc and gdb).

    I seem to recall that gcc goes with the last option when there are
    conflicts, so you can skip the -O2.

    > Now the binaries that I have build are running fine but when I try to
    > debug these binaries with gdb , the gdb gives the error
    > warning: Unable to get location for thread creation breakpoint:
    > generic
    >
    > error [New LWP 100106] Cannot find thread, Thread ID=1, generic error


    Have you compiled in debug symbols, useed the latest version of gdb and
    gcc? My experience is that optimisations and debugging often don't play
    well together, so try turning of optimisations when debugging.

    --
    Erik Wikström
    =?ISO-8859-1?Q?Erik_Wikstr=F6m?=, Jul 5, 2007
    #5
  6. Obnoxious User

    Guest

    On Jul 5, 9:17 pm, Erik Wikström <> wrote:
    > On 2007-07-05 14:23, wrote:
    >
    >
    >
    > > On Jul 4, 12:42 am, wrote:
    > >> On Jul 3, 1:40 pm, ""<> wrote:
    > >> > Can you explain what a non-virtual thunk is? I have been getting
    > >> > this error when trying to link libraries that I have built with
    > >> > optimization.

    >
    > >> By any chance, does this happen specifically when you change -Os to -
    > >> O3 when building
    > >> the libraries? Just a shot in the dark...

    >
    > > Hi

    >
    > > Thanks a lot for the try

    >
    > > When I was building on 64-bit machine I got the error "Non virtual
    > > thunk".
    > > So we added an optimization flag "-O2" to our makefiles, compiled all
    > > the libraries as well as the code again and we got rid of this error.
    > > But JI got a new error of "virtual memory exhausted: Cannot allocate
    > > memory".
    > > Then we added "-O1" flag after "-O2" (-O2 -O1) flag in the makefiles,
    > > rebuild everything and we were able to build out code as well as the
    > > package.

    >
    > We are moving a bit off topic here, more help should be sought in groups
    > for the GNU toolchain (gcc and gdb).
    >
    > I seem to recall that gcc goes with the last option when there are
    > conflicts, so you can skip the -O2.
    >
    > > Now the binaries that I have build are running fine but when I try to
    > > debug these binaries with gdb , the gdb gives the error
    > > warning: Unable to get location for thread creation breakpoint:
    > > generic

    >
    > > error [New LWP 100106] Cannot find thread, Thread ID=1, generic error

    >
    > Have you compiled in debug symbols, useed the latest version of gdb and
    > gcc? My experience is that optimisations and debugging often don't play
    > well together, so try turning of optimisations when debugging.
    >
    > --
    > Erik Wikström


    Thanks a lot
    I am using the latest version of GCC and GDB and this issue happened
    when I am porting my code on 64 bit machine. When I turn off the
    optimization flag it is giving the error of non virtual thunk as I
    explained earlier.
    I agree with you that its not safe and recommended to use both
    optimization and debugging flag at the same time. But as I am not able
    to compile my code without optimization flag. Can you suggest any
    solution to this problem.

    Regards

    Mayank Jain
    9818390836
    www.mayankjain.110mb.com
    , Jul 7, 2007
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. jmueto
    Replies:
    0
    Views:
    746
    jmueto
    Dec 17, 2004
  2. non-virtual thunk

    , Jul 3, 2007, in forum: C++
    Replies:
    2
    Views:
    925
  3. Replies:
    1
    Views:
    372
    Neelesh Bodas
    Jul 3, 2007
  4. Replies:
    1
    Views:
    434
    red floyd
    Jul 7, 2007
  5. Richard Lionheart

    Zero is true ... whoda thunk?

    Richard Lionheart, May 18, 2004, in forum: Ruby
    Replies:
    4
    Views:
    159
    Dave Burt
    May 19, 2004
Loading...

Share This Page