Author: aidandodds
Date: Fri Sep 18 11:49:39 2015
New Revision: 248003

URL: http://llvm.org/viewvc/llvm-project?rev=248003&view=rev
Log:
Differential Revision: http://reviews.llvm.org/D12966

On behalf of Dean De Leo

Modified:
    
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
    
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp?rev=248003&r1=248002&r2=248003&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
 Fri Sep 18 11:49:39 2015
@@ -210,15 +210,64 @@ RenderScriptRuntime::CreateExceptionReso
 const RenderScriptRuntime::HookDefn RenderScriptRuntime::s_runtimeHookDefns[] =
 {
     //rsdScript
-    {"rsdScriptInit", 
"_Z13rsdScriptInitPKN7android12renderscript7ContextEPNS0_7ScriptCEPKcS7_PKhjj", 
0, RenderScriptRuntime::eModuleKindDriver, 
&lldb_private::RenderScriptRuntime::CaptureScriptInit1},
-    {"rsdScriptInvokeForEach", 
"_Z22rsdScriptInvokeForEachPKN7android12renderscript7ContextEPNS0_6ScriptEjPKNS0_10AllocationEPS6_PKvjPK12RsScriptCall",
 0, RenderScriptRuntime::eModuleKindDriver, nullptr},
-    {"rsdScriptInvokeForEachMulti", 
"_Z27rsdScriptInvokeForEachMultiPKN7android12renderscript7ContextEPNS0_6ScriptEjPPKNS0_10AllocationEjPS6_PKvjPK12RsScriptCall",
 0, RenderScriptRuntime::eModuleKindDriver, nullptr},
-    {"rsdScriptInvokeFunction", 
"_Z23rsdScriptInvokeFunctionPKN7android12renderscript7ContextEPNS0_6ScriptEjPKvj",
 0, RenderScriptRuntime::eModuleKindDriver, nullptr},
-    {"rsdScriptSetGlobalVar", 
"_Z21rsdScriptSetGlobalVarPKN7android12renderscript7ContextEPKNS0_6ScriptEjPvj",
 0, RenderScriptRuntime::eModuleKindDriver, 
&lldb_private::RenderScriptRuntime::CaptureSetGlobalVar1},
+    {
+        "rsdScriptInit", //name
+        
"_Z13rsdScriptInitPKN7android12renderscript7ContextEPNS0_7ScriptCEPKcS7_PKhjj", 
// symbol name 32 bit
+        
"_Z13rsdScriptInitPKN7android12renderscript7ContextEPNS0_7ScriptCEPKcS7_PKhmj", 
// symbol name 64 bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        &lldb_private::RenderScriptRuntime::CaptureScriptInit1 // handler
+    },
+    {
+        "rsdScriptInvokeForEach", // name
+        
"_Z22rsdScriptInvokeForEachPKN7android12renderscript7ContextEPNS0_6ScriptEjPKNS0_10AllocationEPS6_PKvjPK12RsScriptCall",
 // symbol name 32bit
+        
"_Z22rsdScriptInvokeForEachPKN7android12renderscript7ContextEPNS0_6ScriptEjPKNS0_10AllocationEPS6_PKvmPK12RsScriptCall",
 // symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        nullptr // handler
+    },
+    {
+        "rsdScriptInvokeForEachMulti", // name
+        
"_Z27rsdScriptInvokeForEachMultiPKN7android12renderscript7ContextEPNS0_6ScriptEjPPKNS0_10AllocationEjPS6_PKvjPK12RsScriptCall",
 // symbol name 32bit
+        
"_Z27rsdScriptInvokeForEachMultiPKN7android12renderscript7ContextEPNS0_6ScriptEjPPKNS0_10AllocationEmPS6_PKvmPK12RsScriptCall",
 // symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        nullptr // handler
+    },
+    {
+        "rsdScriptInvokeFunction", // name
+        
"_Z23rsdScriptInvokeFunctionPKN7android12renderscript7ContextEPNS0_6ScriptEjPKvj",
 // symbol name 32bit
+        
"_Z23rsdScriptInvokeFunctionPKN7android12renderscript7ContextEPNS0_6ScriptEjPKvm",
 // symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        nullptr // handler
+    },
+    {
+        "rsdScriptSetGlobalVar", // name
+        
"_Z21rsdScriptSetGlobalVarPKN7android12renderscript7ContextEPKNS0_6ScriptEjPvj",
 // symbol name 32bit
+        
"_Z21rsdScriptSetGlobalVarPKN7android12renderscript7ContextEPKNS0_6ScriptEjPvm",
 // symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        &lldb_private::RenderScriptRuntime::CaptureSetGlobalVar1 // handler
+    },
 
     //rsdAllocation
-    {"rsdAllocationInit", 
"_Z17rsdAllocationInitPKN7android12renderscript7ContextEPNS0_10AllocationEb", 
0, RenderScriptRuntime::eModuleKindDriver, 
&lldb_private::RenderScriptRuntime::CaptureAllocationInit1},
-    {"rsdAllocationRead2D", 
"_Z19rsdAllocationRead2DPKN7android12renderscript7ContextEPKNS0_10AllocationEjjj23RsAllocationCubemapFacejjPvjj",
 0, RenderScriptRuntime::eModuleKindDriver, nullptr},
+    {
+        "rsdAllocationInit", // name
+        
"_Z17rsdAllocationInitPKN7android12renderscript7ContextEPNS0_10AllocationEb", 
// symbol name 32bit
+        
"_Z17rsdAllocationInitPKN7android12renderscript7ContextEPNS0_10AllocationEb", 
// symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        &lldb_private::RenderScriptRuntime::CaptureAllocationInit1 // handler
+    },
+    {
+        "rsdAllocationRead2D", //name
+        
"_Z19rsdAllocationRead2DPKN7android12renderscript7ContextEPKNS0_10AllocationEjjj23RsAllocationCubemapFacejjPvjj",
 // symbol name 32bit
+        
"_Z19rsdAllocationRead2DPKN7android12renderscript7ContextEPKNS0_10AllocationEjjj23RsAllocationCubemapFacejjPvmm",
 // symbol name 64bit
+        0, // version
+        RenderScriptRuntime::eModuleKindDriver, // type
+        nullptr // handler
+    },
 };
 const size_t RenderScriptRuntime::s_runtimeHookCount = 
sizeof(s_runtimeHookDefns)/sizeof(s_runtimeHookDefns[0]);
 
@@ -242,7 +291,7 @@ RenderScriptRuntime::HookCallback(Runtim
 {
     Log* log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_LANGUAGE));
 
-    if(log)
+    if (log)
         log->Printf ("RenderScriptRuntime::HookCallback - '%s' .", 
hook_info->defn->name);
 
     if (hook_info->defn->grabber) 
@@ -253,54 +302,115 @@ RenderScriptRuntime::HookCallback(Runtim
 
 
 bool
-RenderScriptRuntime::GetArg32Simple(ExecutionContext& context, uint32_t arg, 
uint32_t *data)
+RenderScriptRuntime::GetArgSimple(ExecutionContext &context, uint32_t arg, 
uint64_t *data)
 {
-    Log* log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_LANGUAGE));
-
     if (!data)
         return false;
 
+    Log* log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_LANGUAGE));
     Error error;
     RegisterContext* reg_ctx = context.GetRegisterContext();
     Process* process = context.GetProcessPtr();
+    bool success = false; // return value
+
+    if (!context.GetTargetPtr())
+    {
+        if (log)
+            log->Printf("RenderScriptRuntime::GetArgSimple - Invalid target");
 
-    if (context.GetTargetPtr()->GetArchitecture().GetMachine() == 
llvm::Triple::ArchType::x86) 
+        return false;
+    }
+
+    switch (context.GetTargetPtr()->GetArchitecture().GetMachine())
     {
-        uint64_t sp = reg_ctx->GetSP();
+        case llvm::Triple::ArchType::x86:
         {
+            uint64_t sp = reg_ctx->GetSP();
             uint32_t offset = (1 + arg) * sizeof(uint32_t);
-            process->ReadMemory(sp + offset, data, sizeof(uint32_t), error);
-            if(error.Fail())
+            uint32_t result = 0;
+            process->ReadMemory(sp + offset, &result, sizeof(uint32_t), error);
+            if (error.Fail())
             {
-                if(log)
-                    log->Printf ("RenderScriptRuntime:: GetArg32Simple - error 
reading X86 stack: %s.", error.AsCString());     
+                if (log)
+                    log->Printf ("RenderScriptRuntime:: GetArgSimple - error 
reading X86 stack: %s.", error.AsCString());
             }
+            else
+            {
+                *data = result;
+                success = true;
+            }
+
+            break;
         }
-    }
-    else if (context.GetTargetPtr()->GetArchitecture().GetMachine() == 
llvm::Triple::ArchType::arm) 
-    {
-        if (arg < 4)
+        case llvm::Triple::ArchType::arm:
         {
-            const RegisterInfo* rArg = reg_ctx->GetRegisterInfoAtIndex(arg);
-            RegisterValue rVal;
-            reg_ctx->ReadRegister(rArg, rVal);
-            (*data) = rVal.GetAsUInt32();
+            // arm 32 bit
+            if (arg < 4)
+            {
+                const RegisterInfo* rArg = 
reg_ctx->GetRegisterInfoAtIndex(arg);
+                RegisterValue rVal;
+                reg_ctx->ReadRegister(rArg, rVal);
+                (*data) = rVal.GetAsUInt32();
+                success = true;
+            }
+            else
+            {
+                uint64_t sp = reg_ctx->GetSP();
+                {
+                    uint32_t offset = (arg-4) * sizeof(uint32_t);
+                    process->ReadMemory(sp + offset, &data, sizeof(uint32_t), 
error);
+                    if (error.Fail())
+                    {
+                        if (log)
+                            log->Printf ("RenderScriptRuntime:: GetArgSimple - 
error reading ARM stack: %s.", error.AsCString());
+                    }
+                    else
+                    {
+                        success = true;
+                    }
+                }
+            }
+
+            break;
         }
-        else
+        case llvm::Triple::ArchType::aarch64:
         {
-            uint64_t sp = reg_ctx->GetSP();
+            // arm 64 bit
+            // first 8 arguments are in the registers
+            if (arg < 8)
             {
-                uint32_t offset = (arg-4) * sizeof(uint32_t);
-                process->ReadMemory(sp + offset, &data, sizeof(uint32_t), 
error);
-                if(error.Fail())
+                const RegisterInfo* rArg = 
reg_ctx->GetRegisterInfoAtIndex(arg);
+                RegisterValue rVal;
+                success = reg_ctx->ReadRegister(rArg, rVal);
+                if (success)
                 {
-                    if(log)
-                        log->Printf ("RenderScriptRuntime:: GetArg32Simple - 
error reading ARM stack: %s.", error.AsCString());     
+                    *data = rVal.GetAsUInt64();
+                }
+                else
+                {
+                    if (log)
+                        log->Printf("RenderScriptRuntime::GetArgSimple() - 
AARCH64 - Error while reading the argument #%d", arg);
                 }
             }
-        }   
+            else
+            {
+                // @TODO: need to find the argument in the stack
+                if (log)
+                    log->Printf("RenderScriptRuntime::GetArgSimple - AARCH64 - 
FOR #ARG >= 8 NOT IMPLEMENTED YET. Argument number: %d", arg);
+            }
+            break;
+        }
+        default:
+        {
+            // invalid architecture
+            if (log)
+                log->Printf("RenderScriptRuntime::GetArgSimple - Architecture 
not supported");
+
+        }
     }
-    return true;
+
+
+    return success;
 }
 
 void 
@@ -310,35 +420,38 @@ RenderScriptRuntime::CaptureSetGlobalVar
     
     //Context, Script, int, data, length
 
-    Error error;
-    
-    uint32_t rs_context_u32 = 0U;
-    uint32_t rs_script_u32 = 0U;
-    uint32_t rs_id_u32 = 0U;
-    uint32_t rs_data_u32 = 0U;
-    uint32_t rs_length_u32 = 0U;
+    uint64_t rs_context_u64 = 0U;
+    uint64_t rs_script_u64 = 0U;
+    uint64_t rs_id_u64 = 0U;
+    uint64_t rs_data_u64 = 0U;
+    uint64_t rs_length_u64 = 0U;
+
+    bool success =
+        GetArgSimple(context, 0, &rs_context_u64) &&
+        GetArgSimple(context, 1, &rs_script_u64) &&
+        GetArgSimple(context, 2, &rs_id_u64) &&
+        GetArgSimple(context, 3, &rs_data_u64) &&
+        GetArgSimple(context, 4, &rs_length_u64);
 
-    std::string resname;
-    std::string cachedir;
-
-    GetArg32Simple(context, 0, &rs_context_u32);
-    GetArg32Simple(context, 1, &rs_script_u32);
-    GetArg32Simple(context, 2, &rs_id_u32);
-    GetArg32Simple(context, 3, &rs_data_u32);
-    GetArg32Simple(context, 4, &rs_length_u32);
+    if (!success)
+    {
+        if (log)
+            log->Printf("RenderScriptRuntime::CaptureSetGlobalVar1 - Error 
while reading the function parameters");
+        return;
+    }
     
-    if(log)
+    if (log)
     {
         log->Printf ("RenderScriptRuntime::CaptureSetGlobalVar1 - 0x%" PRIx64 
",0x%" PRIx64 " slot %" PRIu64 " = 0x%" PRIx64 ":%" PRIu64 "bytes.",
-                        (uint64_t)rs_context_u32, (uint64_t)rs_script_u32, 
(uint64_t)rs_id_u32, (uint64_t)rs_data_u32, (uint64_t)rs_length_u32);
+                        rs_context_u64, rs_script_u64, rs_id_u64, rs_data_u64, 
rs_length_u64);
 
-        addr_t script_addr =  (addr_t)rs_script_u32;
+        addr_t script_addr =  (addr_t)rs_script_u64;
         if (m_scriptMappings.find( script_addr ) != m_scriptMappings.end())
         {
             auto rsm = m_scriptMappings[script_addr];
-            if (rs_id_u32 < rsm->m_globals.size())
+            if (rs_id_u64 < rsm->m_globals.size())
             {
-                auto rsg = rsm->m_globals[rs_id_u32];
+                auto rsg = rsm->m_globals[rs_id_u64];
                 log->Printf ("RenderScriptRuntime::CaptureSetGlobalVar1 - 
Setting of '%s' within '%s' inferred", rsg.m_name.AsCString(), 
                                 
rsm->m_module->GetFileSpec().GetFilename().AsCString());
             }
@@ -353,19 +466,24 @@ RenderScriptRuntime::CaptureAllocationIn
     
     //Context, Alloc, bool
 
-    Error error;
-    
-    uint32_t rs_context_u32 = 0U;
-    uint32_t rs_alloc_u32 = 0U;
-    uint32_t rs_forceZero_u32 = 0U;
-
-    GetArg32Simple(context, 0, &rs_context_u32);
-    GetArg32Simple(context, 1, &rs_alloc_u32);
-    GetArg32Simple(context, 2, &rs_forceZero_u32);
-        
-    if(log)
+    uint64_t rs_context_u64 = 0U;
+    uint64_t rs_alloc_u64 = 0U;
+    uint64_t rs_forceZero_u64 = 0U;
+
+    bool success =
+        GetArgSimple(context, 0, &rs_context_u64) &&
+        GetArgSimple(context, 1, &rs_alloc_u64) &&
+        GetArgSimple(context, 2, &rs_forceZero_u64);
+    if (!success) // error case
+    {
+        if (log)
+            log->Printf("RenderScriptRuntime::CaptureAllocationInit1 - Error 
while reading the function parameters");
+        return; // abort
+    }
+
+    if (log)
         log->Printf ("RenderScriptRuntime::CaptureAllocationInit1 - 0x%" 
PRIx64 ",0x%" PRIx64 ",0x%" PRIx64 " .",
-                        (uint64_t)rs_context_u32, (uint64_t)rs_alloc_u32, 
(uint64_t)rs_forceZero_u32);
+                        rs_context_u64, rs_alloc_u64, rs_forceZero_u64);
 }
 
 void 
@@ -377,37 +495,46 @@ RenderScriptRuntime::CaptureScriptInit1(
     Error error;
     Process* process = context.GetProcessPtr();
 
-    uint32_t rs_context_u32 = 0U;
-    uint32_t rs_script_u32 = 0U;
-    uint32_t rs_resnameptr_u32 = 0U;
-    uint32_t rs_cachedirptr_u32 = 0U;
+    uint64_t rs_context_u64 = 0U;
+    uint64_t rs_script_u64 = 0U;
+    uint64_t rs_resnameptr_u64 = 0U;
+    uint64_t rs_cachedirptr_u64 = 0U;
 
     std::string resname;
     std::string cachedir;
 
-    GetArg32Simple(context, 0, &rs_context_u32);
-    GetArg32Simple(context, 1, &rs_script_u32);
-    GetArg32Simple(context, 2, &rs_resnameptr_u32);
-    GetArg32Simple(context, 3, &rs_cachedirptr_u32);
+    // read the function parameters
+    bool success =
+        GetArgSimple(context, 0, &rs_context_u64) &&
+        GetArgSimple(context, 1, &rs_script_u64) &&
+        GetArgSimple(context, 2, &rs_resnameptr_u64) &&
+        GetArgSimple(context, 3, &rs_cachedirptr_u64);
 
-    process->ReadCStringFromMemory((lldb::addr_t)rs_resnameptr_u32, resname, 
error);
+    if (!success)
+    {
+        if (log)
+            log->Printf("RenderScriptRuntime::CaptureScriptInit1 - Error while 
reading the function parameters");
+        return;
+    }
+
+    process->ReadCStringFromMemory((lldb::addr_t)rs_resnameptr_u64, resname, 
error);
     if (error.Fail())
     {
-        if(log)
+        if (log)
             log->Printf ("RenderScriptRuntime::CaptureScriptInit1 - error 
reading resname: %s.", error.AsCString());
                    
     }
 
-    process->ReadCStringFromMemory((lldb::addr_t)rs_cachedirptr_u32, cachedir, 
error);
+    process->ReadCStringFromMemory((lldb::addr_t)rs_cachedirptr_u64, cachedir, 
error);
     if (error.Fail())
     {
-        if(log)
+        if (log)
             log->Printf ("RenderScriptRuntime::CaptureScriptInit1 - error 
reading cachedir: %s.", error.AsCString());     
     }
     
     if (log)
         log->Printf ("RenderScriptRuntime::CaptureScriptInit1 - 0x%" PRIx64 
",0x%" PRIx64 " => '%s' at '%s' .",
-                     (uint64_t)rs_context_u32, (uint64_t)rs_script_u32, 
resname.c_str(), cachedir.c_str());
+                     rs_context_u64, rs_script_u64, resname.c_str(), 
cachedir.c_str());
 
     if (resname.size() > 0)
     {
@@ -418,14 +545,14 @@ RenderScriptRuntime::CaptureScriptInit1(
         script.cachedir = cachedir;
         script.resname = resname;
         script.scriptDyLib.assign(strm.GetData());
-        script.script = rs_script_u32;
-        script.context = rs_context_u32;
+        script.script = (addr_t) rs_script_u64;
+        script.context = (addr_t) rs_context_u64;
 
         m_scripts.push_back(script);
 
         if (log)
             log->Printf ("RenderScriptRuntime::CaptureScriptInit1 - '%s' 
tagged with context 0x%" PRIx64 " and script 0x%" PRIx64 ".",
-                         strm.GetData(), (uint64_t)rs_context_u32, 
(uint64_t)rs_script_u32);
+                         strm.GetData(), rs_context_u64, rs_script_u64);
     } 
     else if (log)
     {
@@ -445,8 +572,12 @@ RenderScriptRuntime::LoadRuntimeHooks(ll
         return;
     }
 
-    if ((GetProcess()->GetTarget().GetArchitecture().GetMachine() != 
llvm::Triple::ArchType::x86)
-        && (GetProcess()->GetTarget().GetArchitecture().GetMachine() != 
llvm::Triple::ArchType::arm))
+    Target &target = GetProcess()->GetTarget();
+    llvm::Triple::ArchType targetArchType = 
target.GetArchitecture().GetMachine();
+
+    if (targetArchType != llvm::Triple::ArchType::x86
+        && targetArchType != llvm::Triple::ArchType::arm
+        && targetArchType != llvm::Triple::ArchType::aarch64)
     {
         if (log)
             log->Printf ("RenderScriptRuntime::LoadRuntimeHooks - Unable to 
hook runtime. Only X86, ARM supported currently.");
@@ -454,7 +585,7 @@ RenderScriptRuntime::LoadRuntimeHooks(ll
         return;
     }
 
-    Target &target = GetProcess()->GetTarget();
+    uint32_t archByteSize = target.GetArchitecture().GetAddressByteSize();
 
     for (size_t idx = 0; idx < s_runtimeHookCount; idx++)
     {
@@ -463,16 +594,29 @@ RenderScriptRuntime::LoadRuntimeHooks(ll
             continue;
         }
 
-        const Symbol *sym = 
module->FindFirstSymbolWithNameAndType(ConstString(hook_defn->symbol_name), 
eSymbolTypeCode);
+        const char* symbol_name = (archByteSize == 4) ? 
hook_defn->symbol_name_m32 : hook_defn->symbol_name_m64;
+
+        const Symbol *sym = 
module->FindFirstSymbolWithNameAndType(ConstString(symbol_name), 
eSymbolTypeCode);
+        if (!sym){
+            if (log){
+                log->Printf("RenderScriptRuntime::LoadRuntimeHooks - ERROR: 
Symbol '%s' related to the function %s not found", symbol_name, 
hook_defn->name);
+            }
+            continue;
+        }
 
         addr_t addr = sym->GetLoadAddress(&target);
         if (addr == LLDB_INVALID_ADDRESS)
         {
-            if(log)
+            if (log)
                 log->Printf ("RenderScriptRuntime::LoadRuntimeHooks - Unable 
to resolve the address of hook function '%s' with symbol '%s'.", 
-                             hook_defn->name, hook_defn->symbol_name);
+                             hook_defn->name, symbol_name);
             continue;
         }
+        else
+        {
+            if (log)
+                log->Printf("RenderScriptRuntime::LoadRuntimeHooks - Function 
%s, address resolved at 0x%" PRIx64, hook_defn->name, addr);
+        }
 
         RuntimeHookSP hook(new RuntimeHook());
         hook->address = addr;

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h?rev=248003&r1=248002&r2=248003&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
 Fri Sep 18 11:49:39 2015
@@ -237,7 +237,8 @@ class RenderScriptRuntime : public lldb_
     struct HookDefn
     {
         const char * name;
-        const char * symbol_name;
+        const char * symbol_name_m32; // mangled name for the 32 bit 
architectures
+        const char * symbol_name_m64; // mangled name for the 64 bit archs
         uint32_t version;
         ModuleKind kind;
         CaptureStateFn grabber;
@@ -286,7 +287,7 @@ class RenderScriptRuntime : public lldb_
 
     void HookCallback(RuntimeHook* hook_info, ExecutionContext& context);
 
-    bool GetArg32Simple(ExecutionContext& context, uint32_t arg, uint32_t 
*data);
+    bool GetArgSimple(ExecutionContext& context, uint32_t arg, uint64_t* data);
 
     void CaptureScriptInit1(RuntimeHook* hook_info, ExecutionContext& context);
     void CaptureAllocationInit1(RuntimeHook* hook_info, ExecutionContext& 
context);


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to