how to solve this segment fault bug?
明覺
shi.minjue at gmail.com
Sat May 16 09:30:55 BST 2009
On Sat, May 16, 2009 at 3:24 PM, taha abderrahman <taha_ab at yahoo.fr> wrote:
>
> Hi;
> Please try this patch to K3DSurf code in the glivewer.cpp file (two lines to uncomment with "//": 733 and 745 ) and let me know if this fixes the issue:
> ====================================================================
> NBGlWindow++;
> //if(NBGlWindow == 1) { <<---------- line:733
> GLfloat ambient[] = { .0, .0, .0, 1.0 };
> GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
> GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
> GLfloat local_view[] = { 1.0 };
> static GLfloat position[4] = {0.0, 0.0,1000.0, 1.0};
>
> glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
> glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
> glLightfv(GL_LIGHT0, GL_POSITION, position);
> glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
> glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view);
> //} <<---------- line:745
>
> =====================================================================
thank you for the help, I solved it 3 hours ago by installing the
nvidia video card driver from Nvidia company(not free software), now
k3dsurf works fine on my amd64 machine, thank you!
> Cheers,
> Taha
>
>
> --- On Tue, 5/12/09, 明覺 <shi.minjue at gmail.com> wrote:
>
>> From: 明覺 <shi.minjue at gmail.com>
>> Subject: Re: how to solve this segment fault bug?
>> To: "taha abderrahman" <taha_ab at yahoo.fr>, kdevelop at barney.cs.uni-potsdam.de
>> Cc: cyril.brulebois at enst-bretagne.fr
>> Received: Tuesday, May 12, 2009, 6:45 AM
>> On Sun, May 10, 2009 at 2:04 PM, taha
>> abderrahman <taha_ab at yahoo.fr>
>> wrote:
>> >
>> > Hi all,
>> > This crash seems to be due to a bug introduced with
>> mesa 7.4 and which affects some amd64 architecture. As far
>> as I know, Downgrading mesa to the previous 7.3 version
>> should resolve this problem.
>> > Informations gathered from:
>> > https://bugs.launchpad.net/ubuntu/+source/mythtv/+bug/355103
>> > https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/356940/
>> > Hope this can help.
>>
>> yes, you are right, so I installed
>> http://www.mesa3d.org/beta/MesaLib-7.6-devel-20090501.tar.gz
>> into /usr to overwrite the old mesa-7.4.1, the previous
>> "seg fault" error
>> disappear, but another new one appear, seems to be
>> associated with the
>> glLightfv function, here is the gdb info:
>> ------------------------------------------------------------------------------------------------------------------------------
>> minjue:~/workspace/k3dsurf/k3dsurf-0.6.2/bin# gdb k3dsurf
>> GNU gdb (GDB) 6.8.50.20090106-cvs-debian
>> This GDB was configured as "x86_64-linux-gnu".
>> (gdb) break glviewer.cpp:740
>> Breakpoint 1 at 0x472920: file glviewer.cpp, line 740. (2
>> locations)
>> (gdb) run
>> Starting program:
>> /root/workspace/k3dsurf/k3dsurf-0.6.2/bin/k3dsurf
>> [Thread debugging using libthread_db enabled]
>>
>> Breakpoint 1, OpenGlWidget (this=0xa34a10, parent=<value
>> optimized out>,
>> name=<value optimized out>) at
>> glviewer.cpp:740
>> 740 glLightfv(GL_LIGHT0,
>> GL_AMBIENT, ambient);
>> (gdb) print GL_LIGHT0
>> No symbol "GL_LIGHT0" in current context.
>> (gdb) print GL_AMBIENT
>> No symbol "GL_AMBIENT" in current context.
>> (gdb) print ambient
>> $1 = {0, 0, -4.28388841e+32, 4.59163468e-41}
>> (gdb) step
>> 736 GLfloat lmodel_ambient[] = {
>> 0.2, 0.2, 0.2, 1.0 };
>> (gdb)
>> 740 glLightfv(GL_LIGHT0,
>> GL_AMBIENT, ambient);
>> (gdb)
>> 734 GLfloat ambient[] = { .0,
>> .0, .0, 1.0 };
>> (gdb)
>> 735 GLfloat diffuse[] = { 1.0,
>> 1.0, 1.0, 1.0 };
>> (gdb)
>> 736 GLfloat lmodel_ambient[] = {
>> 0.2, 0.2, 0.2, 1.0 };
>> (gdb)
>> 737 GLfloat local_view[] = { 1.0
>> };
>> (gdb)
>> 740 glLightfv(GL_LIGHT0,
>> GL_AMBIENT, ambient);
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5622
>> 5622
>> pushq %rdi
>> Current language: auto; currently asm
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5623
>> 5623
>> pushq %rsi
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5624
>> 5624
>> pushq %rdx
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5625
>> 5625 call
>> _x86_64_get_dispatch at PLT
>> (gdb)
>> _x86_64_get_dispatch () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:76
>> 76
>> movq _gl_DispatchTSD(%rip), %rdi
>> (gdb)
>> 77
>> jmp pthread_getspecific at PLT
>> (gdb)
>> 0x00007ffff6524840 in pthread_getspecific () from
>> /lib/libpthread.so.0
>> (gdb)
>> Single stepping until exit from function
>> pthread_getspecific,
>> which has no line number information.
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5626
>> 5626 popq
>> %rdx
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5627
>> 5627 popq
>> %rsi
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5628
>> 5628 popq
>> %rdi
>> (gdb)
>> glLightfv () at
>> ../../../src/mesa/x86-64/glapi_x86-64.S:5629
>> 5629 movq
>> 1280(%rax), %r11
>> (gdb)
>> 5630 jmp
>> *%r11
>> (gdb)
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000000000000000 in ?? ()
>>
>>
>> > Cheers,
>> > Taha
>> >
>> >> From: 明覺 <shi.minjue at gmail.com>
>> >> Subject: how to solve this segment fault bug?
>> >> To: kdevelop at barney.cs.uni-potsdam.de
>> >> Cc: cyril.brulebois at enst-bretagne.fr,
>> taha_ab at yahoo.fr
>> >> Received: Saturday, May 9, 2009, 2:56 PM
>> >> I'm studying a software named
>> >> k3dsurf, which is a kdevelop project,
>> >> here is the source code
>> >> http://kde-apps.org/content/show.php?content=25049.
>> >> I have built it by kdevelop 3.5.4 successfully,
>> but when i
>> >> start it,
>> >> it says segment fault, here is the gdb info:
>> >>
>> ------------------------------------------------------------------------------------------------------------------------------
>> >> Program received signal SIGSEGV, Segmentation
>> fault.
>> >> 0x00007ffff5d6da60 in ?? () from /lib/libc.so.6
>> >> (gdb) bt
>> >> #0 0x00007ffff5d6da60 in ?? () from
>> /lib/libc.so.6
>> >> #1 0x00007ffff6ec4671 in glXWaitX () at
>> >> glxcmds.c:660
>> >> #2 0x00007ffff790c2a1 in
>> >> QGLWidget::resizeEvent(QResizeEvent*) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #3 0x00007ffff772f07b in
>> QWidget::event(QEvent*) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #4 0x00007ffff76a8953 in
>> >> QApplication::internalNotify(QObject*, QEvent*)
>> ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #5 0x00007ffff76a962e in
>> >> QApplication::notify(QObject*, QEvent*) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #6 0x00007ffff76aa03a in
>> >> QApplication::sendPostedEvents(QObject*, int) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #7 0x00007ffff773018d in QWidget::show() ()
>> from
>> >> /usr/lib/libqt-mt.so.3
>> >> #8 0x00007ffff772e5d1 in
>> QWidget::showChildren(bool)
>> >> ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #9 0x00007ffff7730260 in QWidget::show() ()
>> from
>> >> /usr/lib/libqt-mt.so.3
>> >> #10 0x00007ffff772e5d1 in
>> QWidget::showChildren(bool) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #11 0x00007ffff7730260 in QWidget::show() () from
>> >> /usr/lib/libqt-mt.so.3
>> >> #12 0x00007ffff78193c9 in QWidgetStack::show() ()
>> from
>> >> /usr/lib/libqt-mt.so.3
>> >> #13 0x00007ffff772e5d1 in
>> QWidget::showChildren(bool) ()
>> >> from /usr/lib/libqt-mt.so.3
>> >> #14 0x00007ffff7730260 in QWidget::show() () from
>> >> /usr/lib/libqt-mt.so.3
>> >>
>> ------------------------------------------------------------------------------------------------------------------------------
>> >>
>> >>
>> >> glxcmds.c is a file of mesa, line 660 of this file
>> is like
>> >> this:
>> >>
>> ------------------------------------------------------------------------------------------------------------------------------
>> >> PUBLIC void glXWaitX(void)
>> >> {
>> >> ......
>> >> #ifdef GLX_DIRECT_RENDERING
>> >> if (gc->driContext) {
>> >> int screen;
>> >>
>> __GLXDRIdrawable *pdraw =
>> >> GetGLXDRIDrawable(dpy,
>> >> gc->currentDrawable, &screen);
>> >>
>> >> if ( pdraw
>> != NULL ) {
>> >>
>> __GLXscreenConfigs * const
>> >> psc = GetGLXScreenConfigs(dpy, screen);
>> >> if
>> >> (psc->driScreen->waitX != NULL)
>> >> [line 660]
>> >>
>> (*psc->driScreen->waitX)(pdraw);
>> >> } else
>> >> XSync(dpy,
>> False);
>> >> return;
>> >> }
>> >> ......
>> >>
>> ------------------------------------------------------------------------------------------------------------------------------
>> >>
>> >> how could i solve this bug? my platform is
>> >> debian-sid-amd64, thanks.
>> >> (another information is that in i386 environment,
>> there is
>> >> no the
>> >> segment fault error, so this is a issue
>> associated
>> >> with the amd64
>> >> platform environment)
>> >>
>> >
>> >
>> >
>> __________________________________________________________________
>> > Ask a question on any topic and get answers from real
>> people. Go to Yahoo! Answers and share what you know at http://ca.answers.yahoo.com
>> >
>>
>>
>>
>> --
>> 我的操作系統是Gnu/Linux Debian/gNewSense Gnome
>> Mozilla Gmail/Evolution
>> Gtkmm/Gtkglextmm Scim Totem Pidgin.
>>
>
>
> __________________________________________________________________
> Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now
> http://ca.toolbar.yahoo.com.
>
--
我的操作系統是Gnu/Linux Debian/gNewSense Gnome Mozilla Gmail/Evolution
Gtkmm/Gtkglextmm Scim Totem Pidgin.
More information about the KDevelop
mailing list