Sprung in falsche SharedLib? Was tun?
-
hallo,
mein programm endet mit einem segfault. Der debugger gibt mir dabei folgenden backtrace zurück:
... Program received signal SIGSEGV, Segmentation fault. general_exit_library (ud=-55744, error=1, no_sync_globals=0, no_update_ibsta=0, status_clear_mask=0, status_set_mask=0, no_unlock_board=0) at ibutil.c:493 493 ibConf_t *conf = ibConfigs[ ud ]; (gdb) bt #0 general_exit_library (ud=-55744, error=1, no_sync_globals=0, no_update_ibsta=0, status_clear_mask=0, status_set_mask=0, no_unlock_board=0) at ibutil.c:493 #1 0x0000000000eece2a in exit_library (ud=-55744, error=1) at ibutil.c:487 #2 0x0000000000eeb5e7 in Send (boardID=-55744, address=<value optimized out>, buffer=0x0, count=0, eotmode=0) at ibWrt.c:428 #3 0x00007fffdc7aab9b in ?? () from /usr/lib/fglrx/libatiadlxx.so #4 0x00007fffdc7ad7e3 in ?? () from /usr/lib/fglrx/libatiadlxx.so ...Die Frames #0,#1 und #2 kommen dabei aus der libgpib, die statisch in das projekt gelinkt wird (an dieser Stelle im Programm jedoch nicht verwendet wird!). Die Frames #3, #4 stammen aus dem (unfreien) fglrx ati graphik treiber, der dynamisch vom graphischen system reingeladen wird. Dieser hat aber mit der libgpib nichts zu tun. Wie kann das also sein? Ein Fehler beim Linken? Jemand eine Idee? Oder ist das ein bug in fglrx?
Wenn ich statt dem fglrx treiber den offenen xorg ati treiber verwende, besteht das problem nicht (die Funktion Send in ibWrt.c wird nie aufgerufen). Leider kommt der xorg treiber aber mit meinem zweiten monitor nicht ganz klar. das wäre also keine lösung für mich.
Bin für Hilfe sehr dankbar.
grüße
Martin