mirror of
https://github.com/fluencelabs/redis
synced 2025-06-12 08:41:21 +00:00
Tcl script, make target, and redis.c changes to build the static symbol table automagically
This commit is contained in:
22
utils/build-static-symbols.tcl
Normal file
22
utils/build-static-symbols.tcl
Normal file
@ -0,0 +1,22 @@
|
||||
# Build a symbol table for static symbols of redis.c
|
||||
# Useful to get stack traces on segfault without a debugger. See redis.c
|
||||
# for more information.
|
||||
#
|
||||
# Copyright(C) 2009 Salvatore Sanfilippo, under the BSD license.
|
||||
|
||||
set fd [open redis.c]
|
||||
set symlist {}
|
||||
while {[gets $fd line] != -1} {
|
||||
if {[regexp {^static +[A-z0-9]+[ *]+([A-z0-9]*)\(} $line - sym]} {
|
||||
lappend symlist $sym
|
||||
}
|
||||
}
|
||||
set symlist [lsort -unique $symlist]
|
||||
puts "static struct redisFunctionSym symsTable\[\] = {"
|
||||
foreach sym $symlist {
|
||||
puts "{\"$sym\",(unsigned long)$sym},"
|
||||
}
|
||||
puts "{NULL,0}"
|
||||
puts "};"
|
||||
|
||||
close $fd
|
Reference in New Issue
Block a user