MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / debugmem_init

Function debugmem_init

src/debugmem.cpp:3403–3540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3401#endif
3402
3403void debugmem_init(bool initmem)
3404{
3405 debug_waiting = false;
3406 if (initmem) {
3407 if (!debugmem_bank.baseaddr) {
3408 int size = 0x10000000;
3409 for (uae_u32 mem = 0x70000000; mem < 0xf0000000; mem += size) {
3410 if (get_mem_bank_real(mem) == &dummy_bank && get_mem_bank_real(mem + size - 65536) == &dummy_bank) {
3411 debugmem_bank.reserved_size = size;
3412 debugmem_bank.mask = debugmem_bank.reserved_size - 1;
3413 debugmem_bank.start = mem;
3414 if (!mapped_malloc(&debugmem_bank)) {
3415 console_out_f(_T("Failed to automatically allocate debugmem (mapped_malloc)!\n"));
3416 return;
3417 }
3418 map_banks(&debugmem_bank, debugmem_bank.start >> 16, debugmem_bank.allocated_size >> 16, 0);
3419 console_out_f(_T("Automatically allocated debugmem location: %08x - %08x %08x\n"),
3420 debugmem_bank.start, debugmem_bank.start + debugmem_bank.allocated_size - 1, debugmem_bank.allocated_size);
3421 break;
3422 }
3423 }
3424 if (!debugmem_bank.baseaddr) {
3425 console_out_f(_T("Failed to automatically allocate debugmem (no space)!\n"));
3426 return;
3427 }
3428 }
3429 memset(debugmem_bank.baseaddr, 0xa5, debugmem_bank.allocated_size);
3430 if (!debugmem_func_lgeti) {
3431
3432 debugmem_func_lgeti = debugmem_bank.lgeti;
3433 debugmem_func_wgeti = debugmem_bank.wgeti;
3434 debugmem_func_lget = debugmem_bank.lget;
3435 debugmem_func_wget = debugmem_bank.wget;
3436 debugmem_func_bget = debugmem_bank.bget;
3437 debugmem_func_lput = debugmem_bank.lput;
3438 debugmem_func_wput = debugmem_bank.wput;
3439 debugmem_func_bput = debugmem_bank.bput;
3440 debugmem_func_xlate = debugmem_bank.xlateaddr;
3441
3442 debugmem_bank.lgeti = debugmem_lgeti;
3443 debugmem_bank.wgeti = debugmem_wgeti;
3444 debugmem_bank.lget = debugmem_lget;
3445 debugmem_bank.wget = debugmem_wget;
3446 debugmem_bank.bget = debugmem_bget;
3447 debugmem_bank.lput = debugmem_lput;
3448 debugmem_bank.wput = debugmem_wput;
3449 debugmem_bank.bput = debugmem_bput;
3450 debugmem_bank.xlateaddr = debugmem_xlate;
3451 }
3452 }
3453 alloccnt = 0;
3454 if (!allocs) {
3455 allocs = xcalloc(struct debugmemallocs*, MAX_DEBUGMEMALLOCS);
3456 struct debugmemallocs *a = xcalloc(struct debugmemallocs, MAX_DEBUGMEMALLOCS);
3457 for (int i = 0; i < MAX_DEBUGMEMALLOCS; i++) {
3458 allocs[i] = a + i;
3459 }
3460 }

Callers 4

debugmem_relocFunction · 0.85
debugmem_addsegsFunction · 0.85
debugmem_add_seglistFunction · 0.85
read_executable_romFunction · 0.85

Calls 6

get_mem_bank_realFunction · 0.85
mapped_mallocFunction · 0.85
debugger_load_librariesFunction · 0.85
map_banksFunction · 0.70
console_out_fFunction · 0.50

Tested by

no test coverage detected