void *malloc(size_t size)
{
    Scope scope;
    void *ret = sOriginalMalloc(size);
    if (sEnable) {
        sEnable = false;
        time_t time;
        FILE *f = file(time);
        fprintf(f, "%ld malloc %p %d ", time, ret, static_cast<int>(size));
        DUMP_STACK();
        sEnable = true;
    }
    return ret;
}
void free(void *ptr)
{
    Scope scope;
    if (ptr) {
        sOriginalFree(ptr);
        if (sEnable) {
            sEnable = false;
            time_t time;
            FILE *f = file(time);
            fprintf(f, "%ld free %p ", time, ptr);
            DUMP_STACK();
            sEnable = true;
        }
    }
}
Beispiel #3
0
static void internal_logger(int type, const char *domain, const char *msg) {
	if(domain)
		fprintf(stderr, "[%s] %s", domain, msg);
	else
		fprintf(stderr, "%s", msg);

	if(type == EDELIB_ERROR_MESSAGE_FATAL) {
		/*
		 * glibc redefined stderr pointing it to internal IO struct, so here is used 
		 * good-old-defalut-normal-every_one_use_it alias for it. Yuck!
		 */
		DUMP_STACK(stderr, 2);
		abort();
	}
}
Beispiel #4
0
void crash(avr_t* avr)
{
	DUMP_REG();
	printf("*** CYCLE %" PRI_avr_cycle_count "PC %04x\n", avr->cycle, avr->pc);

	for (int i = OLD_PC_SIZE-1; i > 0; i--) {
		int pci = (avr->trace_data->old_pci + i) & 0xf;
		printf(FONT_RED "*** %04x: %-25s RESET -%d; sp %04x\n" FONT_DEFAULT,
				avr->trace_data->old[pci].pc, avr->trace_data->codeline ? avr->trace_data->codeline[avr->trace_data->old[pci].pc>>1]->symbol : "unknown", OLD_PC_SIZE-i, avr->trace_data->old[pci].sp);
	}

	printf("Stack Ptr %04x/%04x = %d \n", _avr_sp_get(avr), avr->ramend, avr->ramend - _avr_sp_get(avr));
	DUMP_STACK();

	avr_sadly_crashed(avr, 0);
}
void *realloc(void *ptr, size_t size)
{
    Scope scope;
    void *ret = sOriginalRealloc(ptr, size);
    if (sEnable) {
        sEnable = false;
        time_t time;
        FILE *f = file(time);
        if (ptr) {
            fprintf(f, "%ld realloc %p => %p %d ", time, ptr, ret, static_cast<int>(size));
        } else {
            fprintf(f, "%ld realloc 0x0 => %p %d ", time, ret, static_cast<int>(size));
        }
        DUMP_STACK();
        sEnable = true;
    }
    return ret;
}
Beispiel #6
0
::std::ostream &LLCCEP_debugger::debugCore::callStackDump(::std::ostream &out) const
{
	DUMP_STACK(out, "Call stack", softcore::call);

	return out;
}