summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2008-12-19 08:47:28 -0200
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2008-12-19 08:47:28 -0200
commitd6e7b04a03282668b4c7713c30a2a1824394f8a3 (patch)
tree54295a7764dd37b87c3f91b2787c0ec78db1c18a /extra
parentd4a7e8686e28780ca0c2810a59b23e9fdc099b25 (diff)
downloadmariadb-git-d6e7b04a03282668b4c7713c30a2a1824394f8a3.tar.gz
Bug#41612: resolve_stack_dump does not decode 5.1 stack trace
resolve_stack_dump is not able to decode a stack trace produced by glibc's backtrace() functions. The problem is that the stack trace addresses are printed between brackets and the utility is not able to ignore the brackets. The solution is to modify resolve_stack_dump so it can recognize stack trace addresses surrounded by brackets. e.g. [0xdeadbeef].
Diffstat (limited to 'extra')
-rw-r--r--extra/resolve_stack_dump.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/extra/resolve_stack_dump.c b/extra/resolve_stack_dump.c
index 5606c17ecf3..447d63890bd 100644
--- a/extra/resolve_stack_dump.c
+++ b/extra/resolve_stack_dump.c
@@ -290,7 +290,8 @@ static void do_resolve()
char buf[1024], *p;
while (fgets(buf, sizeof(buf), fp_dump))
{
- p = buf;
+ /* skip bracket */
+ p= (p= strchr(buf, '[')) ? p+1 : buf;
/* skip space */
while (my_isspace(&my_charset_latin1,*p))
++p;