void MemoryMapBuilderCS::processInstance(const Instance &inst, MemoryMapNode *node,
                                         VariableTypeContainerList *path)
{
    // Ignore user-land objects
    if (inst.address() < _map->_vmem->memSpecs().pageOffset)
        return;

    // Ignore instances which we cannot access
    if (!inst.isValid() || !inst.isAccessible())
        return;

    try {
        if (MemoryMapHeuristics::isFunctionPointer(inst))
            processFunctionPointer(inst, node, path);
        else if (inst.type()->type() & rtPointer)
            processPointer(inst, node);
        else if (inst.type()->type() & rtArray)
            processArray(inst, node, path);
        else if (inst.type()->type() & StructOrUnion)
            processStructured(inst, node, path);
    }
    catch (GenericException&) {
        // Do nothing
    }
}
Example #2
0
int main(int argc, const char * argv[]) {
    // insert code here...
    MyClass a;
//    MyClass b(a);
//    MyClass c = a;
    
    MyDelClass a1;
//    MyClass b1(a1);
//    MyDelClass c1 = a1;
    a1.isAcceptable( 10 );
//    a1.isAcceptable( 10.345 );    // implicit-cast is disable.
//    a1.isAcceptable( 'c' );       // implicit-cast is disable.
//    a1.isAcceptable( true );      // implicit-cast is disable.
    
    const char* str = "I'm fool";
    processPointer( str );
    
    MyClass* obj = new MyClass();
//    processPointer( obj );        // This template type is disable
    delete obj;
    
    void* vPtr = nullptr;
//    processPointer( vPtr );       // This template type is disable
    
    a1.processPointer( str );
//    a1.processPointer( obj );     // This template type is disable
//    a1.processPointer( vPtr );    // This template type is disable
    
    std::cout << "Hello, World!\n";
    
    return 0;
}