當前位置: 首頁>>代碼示例>>Python>>正文


Python lldb.SBCommandReturnObject方法代碼示例

本文整理匯總了Python中lldb.SBCommandReturnObject方法的典型用法代碼示例。如果您正苦於以下問題:Python lldb.SBCommandReturnObject方法的具體用法?Python lldb.SBCommandReturnObject怎麽用?Python lldb.SBCommandReturnObject使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在lldb的用法示例。


在下文中一共展示了lldb.SBCommandReturnObject方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: handle_command

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def handle_command(debugger, command, exe_ctx, result, internal_dict):
    '''
    Documentation for how to use lsof goes here 
    '''

    command_args = shlex.split(command, posix=False)
    parser = generate_option_parser()
    try:
        (options, args) = parser.parse_args(command_args)
    except:
        result.SetError(parser.usage)
        return

    script = generateScript()
    interpreter = debugger.GetCommandInterpreter()
    res = lldb.SBCommandReturnObject()
    expression = interpreter.HandleCommand("exp -l objc -O -- " + script, res)

    if not res.Succeeded():
        result.SetError(res.GetError())

    result.AppendMessage(res.GetOutput()) 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:24,代碼來源:lsof.py

示例2: sys

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def sys(debugger, command, exe_ctx, result, internal_dict):
    search =  re.search('(?<=\$\().*(?=\))', command)
    if search:
        cleanCommand = search.group(0)
        res = lldb.SBCommandReturnObject()
        interpreter = debugger.GetCommandInterpreter()
        interpreter.HandleCommand(cleanCommand, res, True)
        if not res.Succeeded():
            result.SetError(res.GetError())
            return

        if not res.HasResult():
            # result.SetError("NoneType for {}".format(cleanCommand))
            return

        command = command.replace('$(' + cleanCommand + ')', res.GetOutput().rstrip())
    # command = re.search('\s*(?<=sys).*', command).group(0)
    my_env = os.environ.copy()
    my_env["PATH"] = "/usr/local/bin:" + my_env["PATH"]
    output = subprocess.Popen(command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, env=my_env).communicate()
    retOutput = ''
    if output[1]:
        retOutput += output[1]
    retOutput += output[0].decode("utf-8") 
    result.AppendMessage(retOutput) 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:27,代碼來源:ds.py

示例3: deliApReceipt

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def deliApReceipt(result, debugger):
    command_script = r'''
    @import Foundation; 
    id path = [[[NSBundle mainBundle] appStoreReceiptURL] path]; 

    NSError *error;
    BOOL success = (BOOL)[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
    success ? [NSString stringWithFormat:@"Successfully deleted receipt!\n%@", path] : [NSString stringWithFormat:@"Error: %@", error]
    '''

    res = lldb.SBCommandReturnObject()
    interpreter = debugger.GetCommandInterpreter()

    interpreter.HandleCommand('exp -lobjc -O -- ' + command_script, res)
    if not res.HasResult():
        result.SetError('There\'s no result ' + res.GetError())
        return

    result.AppendMessage(res.GetOutput()) 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:21,代碼來源:iap.py

示例4: dcpy

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def dcpy(debugger, command, exe_ctx, result, internal_dict):
    res = lldb.SBCommandReturnObject()
    debugger = lldb.debugger
    interpreter = debugger.GetCommandInterpreter()
    interpreter.HandleCommand(command, res)
    if not res.Succeeded():
        result.SetError(res.GetError())
        return 
    os.system("echo '%s' | tr -d '\n'  | pbcopy" % res.GetOutput().rstrip())
    result.AppendMessage('Content copied to clipboard...') 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:12,代碼來源:ds.py

示例5: pframework

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def pframework(debugger, command, exe_ctx, result, internal_dict):
    target = getTarget()
    res = lldb.SBCommandReturnObject()
    debugger = lldb.debugger
    interpreter = debugger.GetCommandInterpreter()
    module = target.module[command]
    if not module:
        result.SetError("Couldn't find module: {}".format(command))
        return 
    
    result.AppendMessage("\"" + module.file.fullpath + "\"") 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:13,代碼來源:ds.py

示例6: statiAPReceipt

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def statiAPReceipt(result, debugger):
    command_script = r'''
    @import Foundation; 
    id path = [[[NSBundle mainBundle] appStoreReceiptURL] path]; 
    id data = [NSData dataWithContentsOfFile:path];

    unsigned char md5Buffer[12];
 
    CC_MD5((void*)[data bytes], (unsigned long)[data length], md5Buffer);
    
    NSMutableString *output = [NSMutableString stringWithCapacity:12 * 2];
    for(int i = 0; i < 12; i++)  {
        [output appendFormat:@"%02x",md5Buffer[i]];
    }
  
    data ? [NSString stringWithFormat:@"Receipt found!\n%@\n\nMD5 Hash: %@", path, output] : @"No receipt :["
    '''

    res = lldb.SBCommandReturnObject()
    interpreter = debugger.GetCommandInterpreter()

    interpreter.HandleCommand('exp -lobjc -O -- ' + command_script, res)
    if not res.HasResult():
        result.SetError('There\'s no result ' + res.GetError())
        return

    result.AppendMessage(res.GetOutput()) 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:29,代碼來源:iap.py

示例7: getiAPReceipt

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def getiAPReceipt(result, debugger):
    command_script = r'''
    @import Foundation; 
    id path = [[[NSBundle mainBundle] appStoreReceiptURL] path];
    id data = [NSData dataWithContentsOfFile:path];
data ? [NSString stringWithFormat:@"%p,%p,%p,%@", data, (uintptr_t)[data bytes], (uintptr_t)[data length] + (uintptr_t)[data bytes], path] : @"No receipt :["'''
    res = lldb.SBCommandReturnObject()
    interpreter = debugger.GetCommandInterpreter()

    interpreter.HandleCommand('exp -lobjc -O -- ' + command_script, res)
    if not res.HasResult():
        result.SetError('There\'s no result ' + res.GetError())
        return

    response = res.GetOutput().split(',')

    if len(response) is not 4:
        result.SetError('Bad Fromatting')
        return

    if int(response[0], 16) is 0:
        result.SetError('Couldn\'t open file {}'.format(clean_command))
        return

    basename = os.path.basename(response[3]).strip()
    debugger.HandleCommand(
        'memory read {} {} -r -b -o /tmp/{}'.format(response[1], response[2], basename))

    interpreter.HandleCommand('po [{} dealloc]'.format(response[0]), res)

    fullpath = '/tmp/{}'.format(basename)

    print('Opening file...')
    os.system('open -R \"{}\"'.format(fullpath)) 
開發者ID:DerekSelander,項目名稱:LLDB,代碼行數:36,代碼來源:iap.py

示例8: run_commands

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def run_commands(command_interpreter, commands):
    return_obj = lldb.SBCommandReturnObject()
    for command in commands:
        command_interpreter.HandleCommand( command, return_obj )
        if return_obj.Succeeded():
            if DEBUG: print return_obj.GetOutput()
        else:
            if DEBUG: print return_obj
            return False
    return True 
開發者ID:thlorenz,項目名稱:lldb-jbt,代碼行數:12,代碼來源:jbt.py

示例9: run

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def run(self, arguments, options):
    # It's a good habit to explicitly cast the type of all return
    # values and arguments. LLDB can't always find them on its own.
    interpreter = lldb.debugger.GetCommandInterpreter()
    line = -1
    for arg in arguments[1:]:
      line = line + 1
      object = lldb.SBCommandReturnObject()
      arg = arg.strip()
      interpreter.HandleCommand('image lookup -a {}'.format(arg), self.context, object)
      if object.GetOutput():
        print >> self.result, object.GetOutput().strip().splitlines()[1].replace('Summary:', 'frame #{}: {}'.format(line, arg)) 
開發者ID:luoqisheng,項目名稱:lldb-symbolic,代碼行數:14,代碼來源:SymbolicCommand.py

示例10: run_command

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def run_command(self, interpreter, command):
        ret = lldb.SBCommandReturnObject()
        interpreter.HandleCommand(command, ret)
        if ret.GetOutput():
            print(ret.GetOutput().strip(), file=self.result)

        if ret.Succeeded():
            return True

        self.result.SetError(ret.GetError())
        self.result.SetStatus(ret.GetStatus())
        return False 
開發者ID:facebook,項目名稱:chisel,代碼行數:14,代碼來源:FBDebugCommands.py

示例11: is_continue

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def is_continue(self, interpreter, command):
        ret = lldb.SBCommandReturnObject()
        interpreter.ResolveCommand(command, ret)
        return ret.GetOutput() == "process continue" 
開發者ID:facebook,項目名稱:chisel,代碼行數:6,代碼來源:FBDebugCommands.py

示例12: _exec_cmd

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def _exec_cmd(debugger, command, capture_output=False):
    if capture_output:
        cmdretobj = lldb.SBCommandReturnObject()
        debugger.GetCommandInterpreter().HandleCommand(command, cmdretobj)
        return cmdretobj
    else:
        debugger.HandleCommand(command)
        return None 
開發者ID:quarkslab,項目名稱:LLDBagility,代碼行數:10,代碼來源:lldbagility.py

示例13: cmd

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def cmd(x):
	res = lldb.SBCommandReturnObject()
	lldb.debugger.GetCommandInterpreter().HandleCommand(x, res)
	return res.GetOutput() 
開發者ID:nowsecure,項目名稱:r2lldb,代碼行數:6,代碼來源:loop.py

示例14: cmd

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def cmd(x):
	res = lldb.SBCommandReturnObject()
	lldb.debugger.GetCommandInterpreter().HandleCommand(x, res)
	return res.GetOutput()

#(lldb) e char *$str = (char *)malloc(8)
#(lldb) e (void)strcpy($str, "munkeys")
#(lldb) e $str[1] = 'o'
#(char) $0 = 'o'
#(lldb) p $str
#(char *) $str = 0x00007fd04a900040 "monkeys" 
開發者ID:nowsecure,項目名稱:r2lldb,代碼行數:13,代碼來源:dbg.py

示例15: executeReturnOutput

# 需要導入模塊: import lldb [as 別名]
# 或者: from lldb import SBCommandReturnObject [as 別名]
def executeReturnOutput(debugger,lldb_command, result, dict):
    """Execute given command and returns the outout"""
    ci = debugger.GetCommandInterpreter()
    res = lldb.SBCommandReturnObject()
    ci.HandleCommand(lldb_command,res)
    output = res.GetOutput()
    error = res.GetError()
    return (output,error) 
開發者ID:ant4g0nist,項目名稱:lisa.py,代碼行數:10,代碼來源:lisa.py


注:本文中的lldb.SBCommandReturnObject方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。