Exemplo n.º 1
0
void dumpo( addr_t addr )
{
    struct pvm_object_storage *o = (struct pvm_object_storage *)addr;

    printf("Flags: '");
    print_object_flags(o);
    printf("'\n");
    printf("Da size: %ld\n", (long)(o->_da_size) );


    if(o->_flags & PHANTOM_OBJECT_STORAGE_FLAG_IS_STRING)
    {
        printf("String: '");

        struct data_area_4_string *da = (struct data_area_4_string *)&(o->da);
        int len = da->length;
        unsigned const char *sp = da->data;
        while( len-- )
        {
            putchar(*sp++);
        }
        printf("'\n");
    }
    if(o->_flags & PHANTOM_OBJECT_STORAGE_FLAG_IS_CLASS)
    {
        struct data_area_4_class *da = (struct data_area_4_class *)&(o->da);
        printf("Is class: '"); pvm_object_print( da->class_name ); printf("'\n");
    }
    else
    {
        // Don't dump class class
        printf("Class: { "); dumpo( (addr_t)(o->_class.data) ); printf("}\n");
        //pvm_object_print( o->_class );
    }
}
Exemplo n.º 2
0
static inline void verify_p( pvm_object_storage_t *p )
{
    debug_catch_object( "V", p );

    if( p && ! pvm_object_is_allocated_light(p))
    {
        dumpo((addr_t)p);
        //pvm_object_is_allocated_assert(p);
        panic("freed object accessed");
    }
}
Exemplo n.º 3
0
static int debug_18(struct pvm_object me , struct data_area_4_thread *tc )
{
    (void) me;
    DEBUG_INFO;

    //struct data_area_4_tty      *da = pvm_data_area( me, tty );


    int n_param = POP_ISTACK;
    CHECK_PARAM_COUNT(n_param, 1);

    struct pvm_object o = POP_ARG;

    //pvm_object_print( o );
    printf("\n\nobj dump: ");
    dumpo((addr_t)(o.data));
    printf("\n\n");

    SYS_FREE_O(o);

    SYSCALL_RETURN_NOTHING;
}
Exemplo n.º 4
0
void pvm_object_dump(struct pvm_object o )
{
	dumpo((addr_t)o.data);
}