c - Segmentation fault inside SDL_CreateRenderer -
i'm trying make skeleton sdl2 application on xubuntu 14.04 (every packages date).
here init function source code:
int map_x = 50; int map_y = 20; //the window we'll rendering sdl_window *gwindow = null; //the window renderer sdl_renderer* grenderer = null; void init() { if (sdl_init(sdl_init_video) < 0) eprintf("sdl not initialize: %s\n", sdl_geterror()); gwindow = sdl_createwindow( "sdl tutorial",\ sdl_windowpos_undefined,\ sdl_windowpos_undefined,\ map_x, map_y,\ sdl_window_shown); if (gwindow == null) eprintf( "window not created: %s\n", sdl_geterror()); grenderer = sdl_createrenderer( gwindow, -1,\ sdl_renderer_accelerated); if (grenderer == null) eprintf("renderer not created: %s\n", sdl_geterror()); //initialize renderer color sdl_setrenderdrawcolor(grenderer, 0xff, 0xff, 0xff, 0xff); } but seg faults inside sdl_createrenderer function. here gdb output:
(gdb) run starting program: /home/ghi/desktop/tron/client [thread debugging using libthread_db enabled] using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". program received signal sigsegv, segmentation fault. 0x0000000000005885 in ?? () (gdb) #1 0x00007ffff67dce02 in xcloseim () /usr/lib/x86_64-linux-gnu/libx11.so.6 (gdb) #2 0x00007ffff7b8d4fb in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #3 0x00007ffff7b81cce in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #4 0x00007ffff7aed785 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #5 0x00007ffff7aed8c8 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #6 0x0000000000400cc5 in close () @ client.c:56 56 sdl_quit(); (gdb) #7 0x00007ffff464d723 in ?? () /lib/x86_64-linux-gnu/libdbus-1.so.3 (gdb) #8 0x00007ffff4645a46 in ?? () /lib/x86_64-linux-gnu/libdbus-1.so.3 (gdb) #9 0x00007ffff4644ea7 in ?? () /lib/x86_64-linux-gnu/libdbus-1.so.3 (gdb) #10 0x00007ffff4630e72 in ?? () /lib/x86_64-linux-gnu/libdbus-1.so.3 (gdb) #11 0x00007ffff7b8d534 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #12 0x00007ffff7b81cce in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #13 0x00007ffff7aed785 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #14 0x00007ffff7aed8c8 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #15 0x0000000000400cc5 in close () @ client.c:56 56 sdl_quit(); (gdb) #16 0x00007ffff217ab35 in ?? () /usr/lib/nvidia-331/libgl.so.1 (gdb) #17 0x00007ffff0bbda41 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #18 0x00007ffff0ef1814 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #19 0x00007ffff0efd869 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #20 0x00007ffff0db2238 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #21 0x00007ffff0dbd8a7 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #22 0x00007ffff0ba34b3 in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #23 0x00007ffff0b8665c in ?? () /usr/lib/nvidia-331/libnvidia-glcore.so.331.113 (gdb) #24 0x00007ffff2122b30 in ?? () /usr/lib/nvidia-331/libgl.so.1 (gdb) #25 0x00007ffff2122cdc in ?? () /usr/lib/nvidia-331/libgl.so.1 (gdb) #26 0x00007ffff2153f59 in ?? () /usr/lib/nvidia-331/libgl.so.1 (gdb) #27 0x00007ffff7b8c0ad in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #28 0x00007ffff7b80be6 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #29 0x00007ffff7b80e95 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #30 0x00007ffff7b2ea44 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #31 0x00007ffff7b284c0 in ?? () /usr/lib/x86_64-linux-gnu/libsdl2-2.0.so.0 (gdb) #32 0x0000000000400c38 in init () @ client.c:38 38 grenderer = sdl_createrenderer( gwindow, -1,\ (gdb) #33 0x0000000000400cef in main (argc=1, argv=0x7fffffffdf48) @ client.c:61 61 init(); and makefile:
client : client.o gcc client.o -wall -lm -o client `sdl2-config --cflags --libs` client.o : client.c gcc -ggdb3 -lm -wall -c client.c `sdl2-config --cflags --libs` i'm using libsdl2-dev official repositories. know wrong here?
entire source can found here: https://github.com/hafron/tron/blob/master/client.c
(posted comment, turned out answer; typos fixed)
i know nothing sdl using, stack dump shows close() function called inside nvidia library. suspect superseded other close identifier function. try making close strictly local prepending static keyword declaration: static void close() {...} or renaming function my_close() or whatever...