003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/source/Interpreter
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
source
/
Interpreter
/
π
..
π
CommandAlias.cpp
(7.86 KB)
π
CommandHistory.cpp
(3 KB)
π
CommandInterpreter.cpp
(115 KB)
π
CommandObject.cpp
(51.13 KB)
π
CommandObjectRegexCommand.cpp
(3.78 KB)
π
CommandObjectScript.cpp
(2.37 KB)
π
CommandObjectScript.h
(966 B)
π
CommandOptionValidators.cpp
(1.14 KB)
π
CommandReturnObject.cpp
(5.06 KB)
π
InterpreterProperties.td
(1.32 KB)
π
OptionArgParser.cpp
(7.56 KB)
π
OptionGroupArchitecture.cpp
(1.8 KB)
π
OptionGroupBoolean.cpp
(2.22 KB)
π
OptionGroupFile.cpp
(2.92 KB)
π
OptionGroupFormat.cpp
(8.4 KB)
π
OptionGroupOutputFile.cpp
(1.9 KB)
π
OptionGroupPlatform.cpp
(4.6 KB)
π
OptionGroupPythonClassWithDict.cpp
(5.51 KB)
π
OptionGroupString.cpp
(1.88 KB)
π
OptionGroupUInt64.cpp
(1.87 KB)
π
OptionGroupUUID.cpp
(1.51 KB)
π
OptionGroupValueObjectDisplay.cpp
(7.67 KB)
π
OptionGroupVariable.cpp
(5.05 KB)
π
OptionGroupWatchpoint.cpp
(3.19 KB)
π
OptionValue.cpp
(17.49 KB)
π
OptionValueArch.cpp
(2.39 KB)
π
OptionValueArgs.cpp
(769 B)
π
OptionValueArray.cpp
(9.99 KB)
π
OptionValueBoolean.cpp
(2.8 KB)
π
OptionValueChar.cpp
(1.85 KB)
π
OptionValueDictionary.cpp
(10.06 KB)
π
OptionValueEnumeration.cpp
(3.94 KB)
π
OptionValueFileSpec.cpp
(4.28 KB)
π
OptionValueFileSpecList.cpp
(5.38 KB)
π
OptionValueFormat.cpp
(1.89 KB)
π
OptionValueFormatEntity.cpp
(4.02 KB)
π
OptionValueLanguage.cpp
(2.53 KB)
π
OptionValuePathMappings.cpp
(6.95 KB)
π
OptionValueProperties.cpp
(22.56 KB)
π
OptionValueRegex.cpp
(1.95 KB)
π
OptionValueSInt64.cpp
(2.48 KB)
π
OptionValueString.cpp
(4.3 KB)
π
OptionValueUInt64.cpp
(2.3 KB)
π
OptionValueUUID.cpp
(2.66 KB)
π
Options.cpp
(47.68 KB)
π
Property.cpp
(11 KB)
π
ScriptInterpreter.cpp
(7.53 KB)
π
embedded_interpreter.py
(4.31 KB)
Editing: embedded_interpreter.py
ο»Ώimport sys if sys.version_info[0] < 3: import __builtin__ as builtins else: import builtins import code import lldb import traceback try: import readline import rlcompleter except ImportError: have_readline = False except AttributeError: # This exception gets hit by the rlcompleter when Linux is using # the readline suppression import. have_readline = False else: have_readline = True if 'libedit' in readline.__doc__: readline.parse_and_bind('bind ^I rl_complete') else: readline.parse_and_bind('tab: complete') g_builtin_override_called = False class LLDBQuitter(object): def __init__(self, name): self.name = name def __repr__(self): self() def __call__(self, code=None): global g_builtin_override_called g_builtin_override_called = True raise SystemExit(-1) def setquit(): '''Redefine builtin functions 'quit()' and 'exit()' to print a message and raise an EOFError exception.''' # This function will be called prior to each interactive # interpreter loop or each single line, so we set the global # g_builtin_override_called to False so we know if a SystemExit # is thrown, we can catch it and tell the difference between # a call to "quit()" or "exit()" and something like # "sys.exit(123)" global g_builtin_override_called g_builtin_override_called = False builtins.quit = LLDBQuitter('quit') builtins.exit = LLDBQuitter('exit') # When running one line, we might place the string to run in this string # in case it would be hard to correctly escape a string's contents g_run_one_line_str = None def get_terminal_size(fd): try: import fcntl import termios import struct hw = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, '1234')) except: hw = (0, 0) return hw def readfunc_stdio(prompt): sys.stdout.write(prompt) sys.stdout.flush() line = sys.stdin.readline() # Readline always includes a trailing newline character unless the file # ends with an incomplete line. An empty line indicates EOF. if not line: raise EOFError return line.rstrip() def run_python_interpreter(local_dict): # Pass in the dictionary, for continuity from one session to the next. setquit() try: fd = sys.stdin.fileno() interacted = False if get_terminal_size(fd)[1] == 0: try: import termios old = termios.tcgetattr(fd) if old[3] & termios.ECHO: # Need to turn off echoing and restore new = termios.tcgetattr(fd) new[3] = new[3] & ~termios.ECHO try: termios.tcsetattr(fd, termios.TCSADRAIN, new) interacted = True code.interact( banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()'.", readfunc=readfunc_stdio, local=local_dict) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old) except: pass # Don't need to turn off echoing if not interacted: code.interact( banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.", readfunc=readfunc_stdio, local=local_dict) else: # We have a real interactive terminal code.interact( banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.", local=local_dict) except SystemExit as e: global g_builtin_override_called if not g_builtin_override_called: print('Script exited with %s' % (e)) def run_one_line(local_dict, input_string): global g_run_one_line_str setquit() try: repl = code.InteractiveConsole(local_dict) if input_string: repl.runsource(input_string) elif g_run_one_line_str: repl.runsource(g_run_one_line_str) except SystemExit as e: global g_builtin_override_called if not g_builtin_override_called: print('Script exited with %s' % (e))
Upload File
Create Folder