Commit 646385c9 authored by Sergey Vojtovich's avatar Sergey Vojtovich

Added support for lldb core analysis in mtr

parent 8f47c658
...@@ -264,6 +264,44 @@ EOF ...@@ -264,6 +264,44 @@ EOF
} }
sub _lldb
{
my ($core_name)= @_;
print "\nTrying 'lldb' to get a backtrace from coredump $core_name\n";
# Create tempfile containing lldb commands
my ($tmp, $tmp_name)= tempfile();
print $tmp
"bt\n",
"thread backtrace all\n",
"quit\n";
close $tmp or die "Error closing $tmp_name: $!";
my $lldb_output= `lldb -c '$core_name' -s '$tmp_name' 2>&1`;
unlink $tmp_name or die "Error removing $tmp_name: $!";
if ($? == 127)
{
print "lldb not found, cannot get the stack trace\n";
return;
}
return if $?;
return unless $lldb_output;
resfile_print <<EOF . $lldb_output . "\n";
Output from lldb follows. The first stack trace is from the failing thread.
The following stack traces are from all threads (so the failing one is
duplicated).
--------------------------
EOF
return 1;
}
sub show { sub show {
my ($class, $core_name, $exe_mysqld, $parallel)= @_; my ($class, $core_name, $exe_mysqld, $parallel)= @_;
$hint_mysqld= $exe_mysqld; $hint_mysqld= $exe_mysqld;
...@@ -282,6 +320,7 @@ sub show { ...@@ -282,6 +320,7 @@ sub show {
( (
\&_dbx, \&_dbx,
\&_gdb, \&_gdb,
\&_lldb,
# TODO... # TODO...
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment