diff options
Diffstat (limited to 'share/gdb/python/gdb/prompt.py')
-rw-r--r-- | share/gdb/python/gdb/prompt.py | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/share/gdb/python/gdb/prompt.py b/share/gdb/python/gdb/prompt.py deleted file mode 100644 index d99f2ea..0000000 --- a/share/gdb/python/gdb/prompt.py +++ /dev/null @@ -1,148 +0,0 @@ -# Extended prompt utilities. -# Copyright (C) 2011-2014 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" Extended prompt library functions.""" - -import gdb -import os - -def _prompt_pwd(ignore): - "The current working directory." - return os.getcwdu() - -def _prompt_object_attr(func, what, attr, nattr): - """Internal worker for fetching GDB attributes.""" - if attr is None: - attr = nattr - try: - obj = func() - except gdb.error: - return '<no %s>' % what - if hasattr(obj, attr): - result = getattr(obj, attr) - if callable(result): - result = result() - return result - else: - return '<no attribute %s on current %s>' % (attr, what) - -def _prompt_frame(attr): - "The selected frame; an argument names a frame parameter." - return _prompt_object_attr(gdb.selected_frame, 'frame', attr, 'name') - -def _prompt_thread(attr): - "The selected thread; an argument names a thread parameter." - return _prompt_object_attr(gdb.selected_thread, 'thread', attr, 'num') - -def _prompt_version(attr): - "The version of GDB." - return gdb.VERSION - -def _prompt_esc(attr): - "The ESC character." - return '\033' - -def _prompt_bs(attr): - "A backslash." - return '\\' - -def _prompt_n(attr): - "A newline." - return '\n' - -def _prompt_r(attr): - "A carriage return." - return '\r' - -def _prompt_param(attr): - "A parameter's value; the argument names the parameter." - return gdb.parameter(attr) - -def _prompt_noprint_begin(attr): - "Begins a sequence of non-printing characters." - return '\001' - -def _prompt_noprint_end(attr): - "Ends a sequence of non-printing characters." - return '\002' - -prompt_substitutions = { - 'e': _prompt_esc, - '\\': _prompt_bs, - 'n': _prompt_n, - 'r': _prompt_r, - 'v': _prompt_version, - 'w': _prompt_pwd, - 'f': _prompt_frame, - 't': _prompt_thread, - 'p': _prompt_param, - '[': _prompt_noprint_begin, - ']': _prompt_noprint_end -} - -def prompt_help(): - """Generate help dynamically from the __doc__ strings of attribute - functions.""" - - result = '' - keys = sorted (prompt_substitutions.keys()) - for key in keys: - result += ' \\%s\t%s\n' % (key, prompt_substitutions[key].__doc__) - result += """ -A substitution can be used in a simple form, like "\\f". -An argument can also be passed to it, like "\\f{name}". -The meaning of the argument depends on the particular substitution.""" - return result - -def substitute_prompt(prompt): - "Perform substitutions on PROMPT." - - result = '' - plen = len(prompt) - i = 0 - while i < plen: - if prompt[i] == '\\': - i = i + 1 - if i >= plen: - break - cmdch = prompt[i] - - if cmdch in prompt_substitutions: - cmd = prompt_substitutions[cmdch] - - if i + 1 < plen and prompt[i + 1] == '{': - j = i + 1 - while j < plen and prompt[j] != '}': - j = j + 1 - # Just ignore formatting errors. - if j >= plen or prompt[j] != '}': - arg = None - else: - arg = prompt[i + 2 : j] - i = j - else: - arg = None - result += str(cmd(arg)) - else: - # Unrecognized escapes are turned into the escaped - # character itself. - result += prompt[i] - else: - result += prompt[i] - - i = i + 1 - - return result |