diff options
author | Vratko Polak <vrpolak@cisco.com> | 2019-11-29 15:55:43 +0100 |
---|---|---|
committer | Vratko Polak <vrpolak@cisco.com> | 2019-12-05 10:29:25 +0100 |
commit | 1d9a0ce311d15403432574ab0473274ae0a739fe (patch) | |
tree | cc597434e4aa14355cfb2605677b461a18077a80 | |
parent | 4bddfe8cb71f01a9da6b8c640e4af8436b9f0a4f (diff) |
Use new gdb commands for core dump examination
Change-Id: I96f40fa816055a656209cbbcae8259a74cc4bd80
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
-rw-r--r-- | resources/libraries/python/CoreDumpUtil.py | 14 | ||||
-rw-r--r-- | resources/tools/scripts/gdb-commands | 35 |
2 files changed, 42 insertions, 7 deletions
diff --git a/resources/libraries/python/CoreDumpUtil.py b/resources/libraries/python/CoreDumpUtil.py index 9d9369aa56..76084a3cba 100644 --- a/resources/libraries/python/CoreDumpUtil.py +++ b/resources/libraries/python/CoreDumpUtil.py @@ -118,7 +118,7 @@ class CoreDumpUtil: self.enable_coredump_limit(node, vpp_pid) def get_core_files_on_all_nodes(self, nodes, disable_on_success=True): - """Process all core files and remove the original core files on al + """Process all core files and remove the original core files on all nodes. :param nodes: Nodes in the topology. @@ -128,12 +128,12 @@ class CoreDumpUtil: :type disable_on_success: bool """ for node in nodes.values(): - command = f"for f in {Constants.CORE_DUMP_DIR}/*.core; do " \ - f"sudo gdb /usr/bin/vpp ${{f}} " \ - f"--eval-command=\"set pagination off\" " \ - f"--eval-command=\"thread apply all bt\" " \ - f"--eval-command=\"quit\"; " \ - f"sudo rm -f ${{f}}; done" + command = ( + f"for f in {Constants.CORE_DUMP_DIR}/*.core; do sudo gdb" + f" /usr/bin/vpp ${{f}} -ex 'source -v {Constants.REMOTE_FW_DIR}" + f"/resources/tools/scripts/gdb-commands' -ex quit;" + f" sudo rm -f ${{f}}; done" + ) try: exec_cmd_no_error(node, command, timeout=3600) if disable_on_success: diff --git a/resources/tools/scripts/gdb-commands b/resources/tools/scripts/gdb-commands new file mode 100644 index 0000000000..419dca934b --- /dev/null +++ b/resources/tools/scripts/gdb-commands @@ -0,0 +1,35 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Most of the content of this file has been copied from: +# http://stdio.be/vpp/gdb-commands.txt + +# Usage: +# gdb ${BINFILE} ${CORE} -ex 'source -v gdb-commands' -ex quit + +set pagination off +thread apply all bt + +define printstack + set $i=0 + while $i < 15 + frame $i + x/i $pc + info locals + info reg + set $i = $i + 1 + end +end +thread apply all printstack + +# info proc mappings |