[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Xbindkeys-devel] Crash with glibc invalid pointer when guile config fil
From: |
Thomas Lindroth |
Subject: |
[Xbindkeys-devel] Crash with glibc invalid pointer when guile config file is used |
Date: |
Sat, 19 Feb 2011 21:05:16 +0100 |
I get random crashes when I use xbindkeys-1.8.4 with a guile based config file.
I googled for similar problems and found this bug http://bugs.debian.org/51632
It's the exact same problem I'm having and the proposed change of
scm_take0str(rc_guile_file) into scm_makfrom0str(rc_guile_file) fix my problem.
I guess this debian bug never reached any upstream developers because the
problem still exists two years later.
I use xbindkeys-1.8.4, guile-1.8.8, xorg-server-1.9.4 and libX11-1.4.1
Output I get
...
Button press !
e.xbutton.button=5
e.xbutton.state=16
"(Scheme function)"
m:0x0 + b:5 (mouse)
got screen 0 for window 1ad
*** glibc detected *** xbindkeys: free(): invalid pointer:
0x000000000060b2e0 ***
======= Backtrace: =========
/lib/libc.so.6(+0x72b56)[0x7f6bb0bf1b56]
/lib/libc.so.6(cfree+0x6c)[0x7f6bb0bf690c]
/usr/lib/libguile.so.17(scm_i_sweep_card+0x223)[0x7f6bb114f583]
/usr/lib/libguile.so.17(scm_i_sweep_some_cards+0x53)[0x7f6bb114dda3]
/usr/lib/libguile.so.17(scm_i_sweep_some_segments+0x5c)[0x7f6bb114e01c]
/usr/lib/libguile.so.17(scm_gc_for_newcell+0x54)[0x7f6bb114cdb4]
/usr/lib/libguile.so.17(scm_dynwind_unwind_handler+0xe7)[0x7f6bb11376e7]
/usr/lib/libguile.so.17(scm_apply+0x79b)[0x7f6bb1142fcb]
xbindkeys[0x4025f0]
xbindkeys[0x402a15]
/usr/lib/libguile.so.17(+0x6795f)[0x7f6bb115b95f]
/usr/lib/libguile.so.17(+0x3eaba)[0x7f6bb1132aba]
/usr/lib/libguile.so.17(scm_c_catch+0x161)[0x7f6bb1197d91]
/usr/lib/libguile.so.17(scm_i_with_continuation_barrier+0xb7)[0x7f6bb1132f77]
/usr/lib/libguile.so.17(scm_c_with_continuation_barrier+0x30)[0x7f6bb1133010]
/usr/lib/libguile.so.17(scm_i_with_guile_and_parent+0x34)[0x7f6bb1196d84]
/usr/lib/libguile.so.17(scm_boot_guile+0x25)[0x7f6bb115b915]
xbindkeys[0x401fd1]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f6bb0b9dbbd]
xbindkeys[0x401ec9]
======= Memory map: ========
00400000-0040b000 r-xp 00000000 08:05 937183
/usr/bin/xbindkeys
0060a000-0060b000 r--p 0000a000 08:05 937183
/usr/bin/xbindkeys
0060b000-0060c000 rw-p 0000b000 08:05 937183
/usr/bin/xbindkeys
01cc7000-01d2e000 rw-p 00000000 00:00 0 [heap]
7f6ba8000000-7f6ba8021000 rw-p 00000000 00:00 0
7f6ba8021000-7f6bac000000 ---p 00000000 00:00 0
7f6baf822000-7f6baf837000 r-xp 00000000 08:05 1719829
/lib64/libgcc_s.so.1
7f6baf837000-7f6bafa37000 ---p 00015000 08:05 1719829
/lib64/libgcc_s.so.1
7f6bafa37000-7f6bafa38000 r--p 00015000 08:05 1719829
/lib64/libgcc_s.so.1
7f6bafa38000-7f6bafa39000 rw-p 00016000 08:05 1719829
/lib64/libgcc_s.so.1
7f6bafa39000-7f6bafa3e000 r-xp 00000000 08:05 1077014
/usr/lib64/libXdmcp.so.6.0.0
7f6bafa3e000-7f6bafc3d000 ---p 00005000 08:05 1077014
/usr/lib64/libXdmcp.so.6.0.0
7f6bafc3d000-7f6bafc3e000 r--p 00004000 08:05 1077014
/usr/lib64/libXdmcp.so.6.0.0
7f6bafc3e000-7f6bafc3f000 rw-p 00005000 08:05 1077014
/usr/lib64/libXdmcp.so.6.0.0
7f6bafc3f000-7f6bafc41000 r-xp 00000000 08:05 1077002
/usr/lib64/libXau.so.6.0.0
7f6bafc41000-7f6bafe41000 ---p 00002000 08:05 1077002
/usr/lib64/libXau.so.6.0.0
7f6bafe41000-7f6bafe42000 r--p 00002000 08:05 1077002
/usr/lib64/libXau.so.6.0.0
7f6bafe42000-7f6bafe43000 rw-p 00003000 08:05 1077002
/usr/lib64/libXau.so.6.0.0
7f6bafe43000-7f6bafe4c000 r-xp 00000000 08:05 1078289
/usr/lib64/libltdl.so.7.2.2
7f6bafe4c000-7f6bb004b000 ---p 00009000 08:05 1078289
/usr/lib64/libltdl.so.7.2.2
7f6bb004b000-7f6bb004c000 r--p 00008000 08:05 1078289
/usr/lib64/libltdl.so.7.2.2
7f6bb004c000-7f6bb004d000 rw-p 00009000 08:05 1078289
/usr/lib64/libltdl.so.7.2.2
7f6bb004d000-7f6bb00cd000 r-xp 00000000 08:05 1707240
/lib64/libm-2.11.2.so
7f6bb00cd000-7f6bb02cc000 ---p 00080000 08:05 1707240
/lib64/libm-2.11.2.so
7f6bb02cc000-7f6bb02cd000 r--p 0007f000 08:05 1707240
/lib64/libm-2.11.2.so
7f6bb02cd000-7f6bb02ce000 rw-p 00080000 08:05 1707240
/lib64/libm-2.11.2.so
7f6bb02ce000-7f6bb02d6000 r-xp 00000000 08:05 1707219
/lib64/libcrypt-2.11.2.so
7f6bb02d6000-7f6bb04d5000 ---p 00008000 08:05 1707219
/lib64/libcrypt-2.11.2.so
7f6bb04d5000-7f6bb04d6000 r--p 00007000 08:05 1707219
/lib64/libcrypt-2.11.2.so
7f6bb04d6000-7f6bb04d7000 rw-p 00008000 08:05 1707219
/lib64/libcrypt-2.11.2.so
7f6bb04d7000-7f6bb0505000 rw-p 00000000 00:00 0
7f6bb0505000-7f6bb055c000 r-xp 00000000 08:05 1077884
/usr/lib64/libgmp.so.3.5.2
7f6bb055c000-7f6bb075b000 ---p 00057000 08:05 1077884
/usr/lib64/libgmp.so.3.5.2
7f6bb075b000-7f6bb075c000 r--p 00056000 08:05 1077884
/usr/lib64/libgmp.so.3.5.2
7f6bb075c000-7f6bb075d000 rw-p 00057000 08:05 1077884
/usr/lib64/libgmp.so.3.5.2
7f6bb075d000-7f6bb075f000 r-xp 00000000 08:05 1707224
/lib64/libdl-2.11.2.so
7f6bb075f000-7f6bb095f000 ---p 00002000 08:05 1707224
/lib64/libdl-2.11.2.so
7f6bb095f000-7f6bb0960000 r--p 00002000 08:05 1707224
/lib64/libdl-2.11.2.so
7f6bb0960000-7f6bb0961000 rw-p 00003000 08:05 1707224
/lib64/libdl-2.11.2.so
7f6bb0961000-7f6bb097e000 r-xp 00000000 08:05 1078869
/usr/lib64/libxcb.so.1.1.0
7f6bb097e000-7f6bb0b7d000 ---p 0001d000 08:05 1078869
/usr/lib64/libxcb.so.1.1.0
7f6bb0b7d000-7f6bb0b7e000 r--p 0001c000 08:05 1078869
/usr/lib64/libxcb.so.1.1.0
7f6bb0b7e000-7f6bb0b7f000 rw-p 0001d000 08:05 1078869
/usr/lib64/libxcb.so.1.1.0
7f6bb0b7f000-7f6bb0ccf000 r-xp 00000000 08:05 1707214
/lib64/libc-2.11.2.so
7f6bb0ccf000-7f6bb0ece000 ---p 00150000 08:05 1707214
/lib64/libc-2.11.2.so
7f6bb0ece000-7f6bb0ed2000 r--p 0014f000 08:05 1707214
/lib64/libc-2.11.2.so
7f6bb0ed2000-7f6bb0ed3000 rw-p 00153000 08:05 1707214
/lib64/libc-2.11.2.so
7f6bb0ed3000-7f6bb0ed8000 rw-p 00000000 00:00 0
7f6bb0ed8000-7f6bb0eef000 r-xp 00000000 08:05 1707257
/lib64/libpthread-2.11.2.so
7f6bb0eef000-7f6bb10ee000 ---p 00017000 08:05 1707257
/lib64/libpthread-2.11.2.so
7f6bb10ee000-7f6bb10ef000 r--p 00016000 08:05 1707257
/lib64/libpthread-2.11.2.so
7f6bb10ef000-7f6bb10f0000 rw-p 00017000 08:05 1707257
/lib64/libpthread-2.11.2.so
7f6bb10f0000-7f6bb10f4000 rw-p 00000000 00:00 0
7f6bb10f4000-7f6bb11d2000 r-xp 00000000 08:05 1318171
/usr/lib64/libguile.so.17.2.0
7f6bb11d2000-7f6bb13d1000 ---p 000de000 08:05 1318171
/usr/lib64/libguile.so.17.2.0
7f6bb13d1000-7f6bb13d5000 r--p 000dd000 08:05 1318171
/usr/lib64/libguile.so.17.2.0
7f6bb13d5000-7f6bb13d9000 rw-p 000e1000 08:05 1318171
/usr/lib64/libguile.so.17.2.0Aborted
Config file I use. It's mostly copy and paste from an example I found online.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; xbindkeys mouse shortcuts for Logitech 700
;; Button_______Location___________
;; 1,2,3 standard three keys
;; 4, 5 scroll: up, down
;; 6, 7 undefined
;; 8,9,10,11 thumb buttons: low back, low front, high back, high front
;; 12,13,14 top side buttons: back, middle, front
;; 15 undefined
;; 16,17 scroll: left, right
;; 9 primary shortcuts are always active
;; 20 secondary shortcuts gets activated when the modifier keys are held down
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (display-n str)
"Display a string then newline"
(display str)
(newline))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (primary-8)
"Play / Pause on media player"
(run-command "clementine --play-pause"))
(define (primary-9) ;; Also used with modifier (secondary)
"Browser back by Alt + Left keyboard shortcut"
(run-command "xte 'keydown Alt_L' 'key Left' 'keyup Alt_L'"))
(define (primary-10)
"Next track on media player"
(run-command "clementine --next"))
(define (primary-11) ;; Also used with modifier (tertiary)
"Enter / Return"
(run-command "xte 'key Return'"))
(define (primary-12)
"Lower Volume"
(run-command "amixer --quiet set Master 5-"))
(define (primary-13)
"Raise Volume"
(run-command "amixer --quiet set Master 5+"))
(define (primary-14)
"Spawn edict search script"
(run-command "/home/cocobo/Programmering/work/glossy/editc_no_dialog.pl"))
(define (primary-16)
"Circulate windows backwards by Alt + Shift + Tab keyboard shortcut"
(run-command "xte 'keydown Alt_L' 'keydown Shift_L' 'key Tab' 'keyup
Shift_L' 'keyup Alt_L'"))
(define (primary-17)
"Circulate windows forward by Alt + Tab keyboard shortcut"
(run-command "xte 'keydown Alt_L' 'key Tab' 'keyup Alt_L'"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (secondary-1)
"Toggle fullscreen in mplayer by f key"
(run-command "xte 'key f'"))
(define (secondary-2)
"Minimize active window by Win + g keyboard shortcut"
(run-command "xte 'keydown Super_L' 'key g' 'keyup Super_L'"))
(define (secondary-3)
"Pause / Frame step in mplayer by . key"
(run-command "xte 'key period'"))
(define (secondary-4)
"Page Up"
(run-command "xte 'key Page_Up'"))
(define (secondary-5)
"Page Down"
(run-command "xte 'key Page_Down'"))
(define (secondary-12) ;;UNASSIGNED
(display-n "Code Me"))
(define (secondary-13) ;;UNASSIGNED
(display-n "Code Me"))
(define (secondary-14) ;;UNASSIGNED
(display-n "Code Me"))
(define (secondary-16)
"Previous klipper history item by Ctrl + Alt + Up keyboard shortcut"
(run-command "xte 'keydown Control_L' 'keydown Alt_L' 'key Up'
'keyup Alt_L' 'keyup Control_L'"))
(define (secondary-17)
"Next klipper history item by Ctrl + Alt + Down keyboard shortcut"
(run-command "xte 'keydown Control_L' 'keydown Alt_L' 'key Down'
'keyup Alt_L' 'keyup Control_L'"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (tertiary-1) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-2) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-3) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-4)
"Up key"
(run-command "xte 'key Up'"))
(define (tertiary-5)
"Down key"
(run-command "xte 'key Down'"))
(define (tertiary-12) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-13) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-14) ;;UNASSIGNED
(display-n "Code Me"))
(define (tertiary-16)
"Browser back by Alt + Left keyboard shortcut"
(run-command "xte 'keydown Alt_L' 'key Left' 'keyup Alt_L'"))
(define (tertiary-17)
"Browser forward by Alt + Right keyboard shortcut"
(run-command "xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (primary-binding)
"Bind all primary bindings"
;; 1 - 5 use the default action
(xbindkey-function '("b:8") primary-8)
(xbindkey-function '("b:9") second-binding)
(xbindkey-function '("b:10") primary-10)
(xbindkey-function '("b:11") tertiary-binding)
(xbindkey-function '("b:12") primary-12)
(xbindkey-function '("b:13") primary-13)
(xbindkey-function '("b:14") primary-14)
(xbindkey-function '("b:16") primary-16)
(xbindkey-function '("b:17") primary-17))
(define (reset-to-primary-binding)
"reset primary binding"
(ungrab-all-keys)
(remove-all-keys)
(primary-binding)
(grab-all-keys))
(define (second-binding) ;;bindings for the 9th button
"Bind all secondary binding"
(let ((modkey-used #f))
(ungrab-all-keys)
(remove-all-keys)
(xbindkey-function '("b:1")
(lambda () (secondary-1)
(set! modkey-used #t)))
(xbindkey-function '("b:2")
(lambda () (secondary-2)
(set! modkey-used #t)))
(xbindkey-function '("b:3")
(lambda () (secondary-3)
(set! modkey-used #t)))
(xbindkey-function '("b:4")
(lambda () (secondary-4)
(set! modkey-used #t)))
(xbindkey-function '("b:5")
(lambda () (secondary-5)
(set! modkey-used #t)))
;; 8,10,11 with 9 as modify key requires rubber fingers
(xbindkey-function '("b:12")
(lambda () (secondary-12)
(set! modkey-used #t)))
(xbindkey-function '("b:13")
(lambda () (secondary-13)
(set! modkey-used #t)))
(xbindkey-function '("b:14")
(lambda () (secondary-14)
(set! modkey-used #t)))
(xbindkey-function '("b:16")
(lambda () (secondary-16)
(set! modkey-used #t)))
(xbindkey-function '("b:17")
(lambda () (secondary-17)
(set! modkey-used #t)))
(xbindkey-function '(release "b:9")
(lambda ()
(if (not modkey-used)
(primary-9))
(set! modkey-used #f)
(reset-to-primary-binding)))
(grab-all-keys)))
(define (tertiary-binding) ;;bindings for the 11th button
"Bind all tertiary binding"
(let ((modkey-used #f))
(ungrab-all-keys)
(remove-all-keys)
(xbindkey-function '("b:1")
(lambda () (tertiary-1)
(set! modkey-used #t)))
(xbindkey-function '("b:2")
(lambda () (tertiary-2)
(set! modkey-used #t)))
(xbindkey-function '("b:3")
(lambda () (tertiary-3)
(set! modkey-used #t)))
(xbindkey-function '("b:4")
(lambda () (tertiary-4)
(set! modkey-used #t)))
(xbindkey-function '("b:5")
(lambda () (tertiary-5)
(set! modkey-used #t)))
;; 8,9,10 with 11 as modify key requires rubber fingers
(xbindkey-function '("b:12")
(lambda () (tertiary-12)
(set! modkey-used #t)))
(xbindkey-function '("b:13")
(lambda () (tertiary-13)
(set! modkey-used #t)))
(xbindkey-function '("b:14")
(lambda () (tertiary-14)
(set! modkey-used #t)))
(xbindkey-function '("b:16")
(lambda () (tertiary-16)
(set! modkey-used #t)))
(xbindkey-function '("b:17")
(lambda () (tertiary-17)
(set! modkey-used #t)))
(xbindkey-function '(release "b:11")
(lambda ()
(if (not modkey-used)
(primary-11))
(set! modkey-used #f)
(reset-to-primary-binding)))
(grab-all-keys)))
(debug)
(grab-all-keys)
(primary-binding)
- [Xbindkeys-devel] Crash with glibc invalid pointer when guile config file is used,
Thomas Lindroth <=