12d061d99SKieran Bingham# 22d061d99SKieran Bingham# gdb helper commands and functions for Linux kernel debugging 32d061d99SKieran Bingham# 42d061d99SKieran Bingham# Kernel proc information reader 52d061d99SKieran Bingham# 62d061d99SKieran Bingham# Copyright (c) 2016 Linaro Ltd 72d061d99SKieran Bingham# 82d061d99SKieran Bingham# Authors: 92d061d99SKieran Bingham# Kieran Bingham <[email protected]> 102d061d99SKieran Bingham# 112d061d99SKieran Bingham# This work is licensed under the terms of the GNU GPL version 2. 122d061d99SKieran Bingham# 132d061d99SKieran Bingham 142d061d99SKieran Binghamimport gdb 152d061d99SKieran Bingham 162d061d99SKieran Bingham 17*72bf92ecSKieran Binghamclass LxCmdLine(gdb.Command): 18*72bf92ecSKieran Bingham """ Report the Linux Commandline used in the current kernel. 19*72bf92ecSKieran Bingham Equivalent to cat /proc/cmdline on a running target""" 20*72bf92ecSKieran Bingham 21*72bf92ecSKieran Bingham def __init__(self): 22*72bf92ecSKieran Bingham super(LxCmdLine, self).__init__("lx-cmdline", gdb.COMMAND_DATA) 23*72bf92ecSKieran Bingham 24*72bf92ecSKieran Bingham def invoke(self, arg, from_tty): 25*72bf92ecSKieran Bingham gdb.write(gdb.parse_and_eval("saved_command_line").string() + "\n") 26*72bf92ecSKieran Bingham 27*72bf92ecSKieran BinghamLxCmdLine() 28*72bf92ecSKieran Bingham 29*72bf92ecSKieran Bingham 302d061d99SKieran Binghamclass LxVersion(gdb.Command): 312d061d99SKieran Bingham """ Report the Linux Version of the current kernel. 322d061d99SKieran Bingham Equivalent to cat /proc/version on a running target""" 332d061d99SKieran Bingham 342d061d99SKieran Bingham def __init__(self): 352d061d99SKieran Bingham super(LxVersion, self).__init__("lx-version", gdb.COMMAND_DATA) 362d061d99SKieran Bingham 372d061d99SKieran Bingham def invoke(self, arg, from_tty): 382d061d99SKieran Bingham # linux_banner should contain a newline 392d061d99SKieran Bingham gdb.write(gdb.parse_and_eval("linux_banner").string()) 402d061d99SKieran Bingham 412d061d99SKieran BinghamLxVersion() 42