From bcfc686db7351a4489d135d2fb0544fb6ee8dad9 Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 10 Nov 2009 19:20:32 +0100 Subject: Tcl script, make target, and redis.c changes to build the static symbol table automagically --- utils/build-static-symbols.tcl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 utils/build-static-symbols.tcl (limited to 'utils/build-static-symbols.tcl') diff --git a/utils/build-static-symbols.tcl b/utils/build-static-symbols.tcl new file mode 100644 index 000000000..e634cbe0f --- /dev/null +++ b/utils/build-static-symbols.tcl @@ -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 -- cgit v1.2.1