Segmentation fault on svn 2858 - ubuntu 10.04 - skankerror - 09-22-2010
Code: ray@intelinux:~/vdrift$ gdb build/vdrift
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/ray/vdrift/build/vdrift...done.
(gdb) run -verbose
Starting program: /home/ray/vdrift/build/vdrift -verbose
[Thread debugging using libthread_db enabled]
INFO: Starting VDrift: development-full, Version: 2858, O/S: Unix-like
INFO: Home directory: /home/ray
INFO: Settings file: /home/ray/.vdrift/VDrift.config (does not exist, will be created)
INFO: Data directory: /usr/local/share/games/vdrift/data
DATA_DIR: /usr/local/share/games/vdrift/data
INFO: Log file: /home/ray/.vdrift/log.txt
INFO: The last VDrift startup was unsuccessful.
Settings have been set to failsafe defaults.
Your original VDrift.config file was backed up to VDrift.config.backup
[New Thread 0xa740eb70 (LWP 4868)]
[Thread 0xa740eb70 (LWP 4868) exited]
INFO: SDL initialization successful
INFO: SDL video query was successful
INFO: Disabling antialiasing
INFO: Display change was successful: 800x600x16 16z fullscreen=0
INFO: Video card information:
Vendor: NVIDIA Corporation
Renderer: GeForce4 MX 440 with AGP8X/AGP/SSE2
Version: 1.5.8 NVIDIA 96.43.18
Maximum texture size: 2048
Maximum varying floats: 8
Using GLEW 1.5.2
INFO: Your video card doesn't support framebuffer objects. Disabling shaders.
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0x082021ab in TEXTURE::LoadCubeVerticalCross (this=0xbfff9ef4, info=..., error=...)
at src/texture.cpp:280
#2 0x082022a4 in TEXTURE::LoadCube (this=0xbfff9ef4, info=..., error=...)
at src/texture.cpp:295
#3 0x08203791 in TEXTURE::Load (this=0xbfff9ef4, info=..., error=...) at src/texture.cpp:517
#4 0x0812aef8 in GRAPHICS_SDLGL::Init (this=0xbfff9e54, shaderpath=..., windowcaption=...,
resx=800, resy=600, bpp=16, depthbpp=16, fullscreen=false, shaders=false, antialiasing=0,
enableshadows=false, new_shadow_distance=1, new_shadow_quality=1, reflection_type=1,
static_reflectionmap_file=..., static_ambientmap_file=..., anisotropy=0, texturesize=...,
lighting_quality=0, newbloom=false, newnormalmaps=false, renderconfig=...,
info_output=..., error_output=...) at src/graphics.cpp:237
#5 0x080ecae9 in GAME::InitializeCoreSubsystems (this=0xbfff9968) at src/game.cpp:243
#6 0x080eb602 in GAME::Start (this=0xbfff9968, args=...) at src/game.cpp:114
#7 0x081c169e in main (argc=2, argv=0xbffff4d4) at src/main.cpp:72
(gdb)
I run it on ubuntustudio 10.04, with a rt-kernel that I compiled, but this problem happens also with ubuntu generic kernel.
This segmentation fault happens since several weeks with previous svn versions.
- skankerror - 09-22-2010
After reading this http://vdrift.net/Forum/viewtopic.php?t=1371 I changed glGenerateMipmapEXT(GL_TEXTURE_CUBE_MAP) to glGenerateMipmap(GL_TEXTURE_CUBE_MAP) in texture.cpp but the output is the same.
- NaN - 09-22-2010
The glew version should be 1.5.4 I think. I wonder if there is a way to check the glew version before linking.
Another related thread: http://vdrift.net/Forum/viewtopic.php?t=1384
- skankerror - 09-22-2010
I updated glew to 1.5.6 :
Code: ray@intelinux:~/vdrift$ gdb build/vdrift
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/ray/vdrift/build/vdrift...done.
(gdb) run -verbose
Starting program: /home/ray/vdrift/build/vdrift -verbose
[Thread debugging using libthread_db enabled]
INFO: Starting VDrift: development-full, Version: 2858, O/S: Unix-like
INFO: Home directory: /home/ray
INFO: Settings file: /home/ray/.vdrift/VDrift.config (does not exist, will be created)
INFO: Data directory: /usr/local/share/games/vdrift/data
DATA_DIR: /usr/local/share/games/vdrift/data
INFO: Log file: /home/ray/.vdrift/log.txt
INFO: The last VDrift startup was unsuccessful.
Settings have been set to failsafe defaults.
Your original VDrift.config file was backed up to VDrift.config.backup
[New Thread 0xa7402b70 (LWP 7667)]
[Thread 0xa7402b70 (LWP 7667) exited]
INFO: SDL initialization successful
INFO: SDL video query was successful
INFO: Disabling antialiasing
INFO: Display change was successful: 800x600x16 16z fullscreen=0
INFO: Video card information:
Vendor: NVIDIA Corporation
Renderer: GeForce4 MX 440 with AGP8X/AGP/SSE2
Version: 1.5.8 NVIDIA 96.43.18
Maximum texture size: 2048
Maximum varying floats: 8
Using GLEW 1.5.6
INFO: Your video card doesn't support framebuffer objects. Disabling shaders.
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0x082021ab in TEXTURE::LoadCubeVerticalCross (this=0xbfff9ef4, info=..., error=...)
at src/texture.cpp:280
#2 0x082022a4 in TEXTURE::LoadCube (this=0xbfff9ef4, info=..., error=...)
at src/texture.cpp:295
#3 0x08203791 in TEXTURE::Load (this=0xbfff9ef4, info=..., error=...) at src/texture.cpp:517
#4 0x0812aef8 in GRAPHICS_SDLGL::Init (this=0xbfff9e54, shaderpath=..., windowcaption=...,
resx=800, resy=600, bpp=16, depthbpp=16, fullscreen=false, shaders=false, antialiasing=0,
enableshadows=false, new_shadow_distance=1, new_shadow_quality=1, reflection_type=1,
static_reflectionmap_file=..., static_ambientmap_file=..., anisotropy=0, texturesize=...,
lighting_quality=0, newbloom=false, newnormalmaps=false, renderconfig=...,
info_output=..., error_output=...) at src/graphics.cpp:237
#5 0x080ecae9 in GAME::InitializeCoreSubsystems (this=0xbfff9968) at src/game.cpp:243
#6 0x080eb602 in GAME::Start (this=0xbfff9968, args=...) at src/game.cpp:114
#7 0x081c169e in main (argc=2, argv=0xbffff4d4) at src/main.cpp:72
It seems nothing changed
- NaN - 09-22-2010
Can you try 2859?
- skankerror - 09-22-2010
Code: ray@intelinux:~/vdrift$ gdb build/vdrift
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/ray/vdrift/build/vdrift...done.
(gdb) run -verbose
Starting program: /home/ray/vdrift/build/vdrift -verbose
[Thread debugging using libthread_db enabled]
INFO: Starting VDrift: development-full, Version: 2861, O/S: Unix-like
INFO: Home directory: /home/ray
INFO: Settings file: /home/ray/.vdrift/VDrift.config (does not exist, will be created)
INFO: Data directory: /usr/local/share/games/vdrift/data
DATA_DIR: /usr/local/share/games/vdrift/data
INFO: Log file: /home/ray/.vdrift/log.txt
INFO: The last VDrift startup was unsuccessful.
Settings have been set to failsafe defaults.
Your original VDrift.config file was backed up to VDrift.config.backup
[New Thread 0xa727ab70 (LWP 9805)]
[Thread 0xa727ab70 (LWP 9805) exited]
INFO: SDL initialization successful
INFO: SDL video query was successful
INFO: Disabling antialiasing
INFO: Display change was successful: 800x600x16 16z fullscreen=0
INFO: Video card information:
Vendor: NVIDIA Corporation
Renderer: GeForce4 MX 440 with AGP8X/AGP/SSE2
Version: 1.5.8 NVIDIA 96.43.18
Maximum texture size: 2048
Maximum varying floats: 8
Using GLEW 1.5.6
INFO: Your video card doesn't support framebuffer objects. Disabling shaders.
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0x082021a3 in TEXTURE::LoadCubeVerticalCross (this=0xbfff9ef0, info=..., error=...)
at src/texture.cpp:282
#2 0x0820229c in TEXTURE::LoadCube (this=0xbfff9ef0, info=..., error=...)
at src/texture.cpp:298
#3 0x08203789 in TEXTURE::Load (this=0xbfff9ef0, info=..., error=...) at src/texture.cpp:520
#4 0x0812aedc in GRAPHICS_SDLGL::Init (this=0xbfff9e50, shaderpath=..., windowcaption=...,
resx=800, resy=600, bpp=16, depthbpp=16, fullscreen=false, shaders=false, antialiasing=0,
enableshadows=false, new_shadow_distance=1, new_shadow_quality=1, reflection_type=1,
static_reflectionmap_file=..., static_ambientmap_file=..., anisotropy=0, texturesize=...,
lighting_quality=0, newbloom=false, newnormalmaps=false, renderconfig=...,
info_output=..., error_output=...) at src/graphics.cpp:237
#5 0x080ecacd in GAME::InitializeCoreSubsystems (this=0xbfff9964) at src/game.cpp:243
#6 0x080eb5e6 in GAME::Start (this=0xbfff9964, args=...) at src/game.cpp:114
#7 0x081c1682 in main (argc=2, argv=0xbffff4d4) at src/main.cpp:72
- NaN - 09-22-2010
Replace GL_EXT_framebuffer_object with GLEW_ARB_framebuffer_object in texture.cpp line 280.
- NaN - 09-22-2010
Can you also try GLEW_EXT_framebuffer_object. Thanks.
- skankerror - 09-22-2010
Well...
with GLEW_ARB and GLEW_EXT I have no more seg fault.
Instead I have black window with some blue at right side and this output repeating endless:
Code: ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: BeginScene
I was thinking about a problem whith my glew update (I used ugly 'dpkg --force-overwrite'), so I downgraded to a clean ubuntu libglew 1.5.2 but nothing changed.
- NaN - 09-22-2010
Interesting. We need to identify the call causing an "invalid operation".
Have a look at graphics.cpp line 351: void GRAPHICS_SDLGL::BeginScene(std::ostream & error_output)
Can you insert OPENGL_UTILITY::CheckForOpenGLErrors after each gl.... call to see which one fails.
- skankerror - 09-22-2010
I think I need some C++ lessons, I've made this :
Code: void GRAPHICS_SDLGL::BeginScene(std::ostream & error_output)
{
glstate.Disable(GL_TEXTURE_2D);
OPENGL_UTILITY::CheckForOpenGLErrors;
glShadeModel( GL_SMOOTH );
OPENGL_UTILITY::CheckForOpenGLErrors;
glClearColor(0,0,0,0);
OPENGL_UTILITY::CheckForOpenGLErrors;
glClearDepth( 1.0f );
OPENGL_UTILITY::CheckForOpenGLErrors;
glstate.Enable(GL_DEPTH_TEST);
OPENGL_UTILITY::CheckForOpenGLErrors;
glDepthFunc( GL_LEQUAL );
OPENGL_UTILITY::CheckForOpenGLErrors;
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
OPENGL_UTILITY::CheckForOpenGLErrors;
glstate.Disable(GL_LIGHTING);
OPENGL_UTILITY::CheckForOpenGLErrors;
glstate.SetColor(0.5,0.5,0.5,1.0);
OPENGL_UTILITY::CheckForOpenGLErrors;
glPolygonOffset(-1.0,-1.0);
OPENGL_UTILITY::CheckForOpenGLErrors;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
OPENGL_UTILITY::CheckForOpenGLErrors("BeginScene", error_output);
}
and when compiling :
Code: src/graphics.cpp: In member function âvoid GRAPHICS_SDLGL::BeginScene(std::ostream&)â:
src/graphics.cpp:354: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:354: warning: statement has no effect
src/graphics.cpp:356: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:356: warning: statement has no effect
src/graphics.cpp:358: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:358: warning: statement has no effect
src/graphics.cpp:360: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:360: warning: statement has no effect
src/graphics.cpp:362: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:362: warning: statement has no effect
src/graphics.cpp:364: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:364: warning: statement has no effect
src/graphics.cpp:366: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:366: warning: statement has no effect
src/graphics.cpp:368: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:368: warning: statement has no effect
src/graphics.cpp:370: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:370: warning: statement has no effect
src/graphics.cpp:372: warning: statement is a reference, not call, to function âOPENGL_UTILITY::CheckForOpenGLErrorsâ
src/graphics.cpp:372: warning: statement has no effect
I stopped this cos I must be wrong...
- NaN - 09-22-2010
Copy paste: OPENGL_UTILITY::CheckForOpenGLErrors("BeginScene", error_output);
Replace "BeginScene" with a unique string per call ("1", "2", ...).
- skankerror - 09-22-2010
Sorry I don't understand, I tried but I failed, can you be more explicit ?
- NaN - 09-22-2010
Like this: http://www.pasteall.org/15772
- skankerror - 09-22-2010
Code: ERROR: OpenGL error "invalid operation" during: 0
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
ERROR: OpenGL error "invalid operation" during: render finish
^C
Program received signal SIGINT, Interrupt.
0xb7fe2424 in __kernel_vsyscall ()
(gdb) backtrace
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb7c44b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7b2761b in ?? () from /usr/lib/nvidia-96/libGL.so.1
Cannot access memory at address 0xc1d0006f
|