diff --git a/src/debug/debug.cpp b/src/debug/debug.cpp index 6973cc21..a6aae3f9 100644 --- a/src/debug/debug.cpp +++ b/src/debug/debug.cpp @@ -61,8 +61,8 @@ int old_cursor_state; // Forwards static void DrawCode(void); static void DEBUG_RaiseTimerIrq(void); -static void SaveMemory(Bitu seg, Bitu ofs1, Bit32u num); -static void SaveMemoryBin(Bitu seg, Bitu ofs1, Bit32u num); +static void SaveMemory(Bit16u seg, Bit32u ofs1, Bit32u num); +static void SaveMemoryBin(Bit16u seg, Bit32u ofs1, Bit32u num); static void LogMCBS(void); static void LogGDT(void); static void LogLDT(void); @@ -1856,9 +1856,9 @@ static void LogGDT(void) while (address %04Xxxx flags [uw] %x:%x::%x:%x [d=%x|a=%x]", i,entry.block.base,entry.block.us,table.block.us, entry.block.wr,table.block.wr,entry.block.d,entry.block.a); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); } } } @@ -1926,10 +1926,10 @@ void LogPages(char* selname) { Bitu entry_addr=(table.block.base<<12)+(sel & 0x3ff)*4; entry.load=phys_readd(entry_addr); sprintf(out1,"page %05Xxxx -> %04Xxxx flags [puw] %x:%x::%x:%x::%x:%x",sel,entry.block.base,entry.block.p,table.block.p,entry.block.us,table.block.us,entry.block.wr,table.block.wr); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); } else { sprintf(out1,"pagetable %03X not present, flags [puw] %x::%x::%x",(sel >> 10),table.block.p,table.block.us,table.block.wr); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); } } } @@ -1938,24 +1938,24 @@ void LogPages(char* selname) { static void LogCPUInfo(void) { char out1[512]; sprintf(out1,"cr0:%08X cr2:%08X cr3:%08X cpl=%x",cpu.cr0,paging.cr2,paging.cr3,cpu.cpl); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); sprintf(out1,"eflags:%08X [vm=%x iopl=%x nt=%x]",reg_flags,GETFLAG(VM)>>17,GETFLAG(IOPL)>>12,GETFLAG(NT)>>14); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); sprintf(out1,"GDT base=%08X limit=%08X",cpu.gdt.GetBase(),cpu.gdt.GetLimit()); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); sprintf(out1,"IDT base=%08X limit=%08X",cpu.idt.GetBase(),cpu.idt.GetLimit()); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); Bitu sel=CPU_STR(); Descriptor desc; if (cpu.gdt.GetDescriptor(sel,desc)) { sprintf(out1,"TR selector=%04X, base=%08X limit=%08X*%X",sel,desc.GetBase(),desc.GetLimit(),desc.saved.seg.g?0x4000:1); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); } sel=CPU_SLDT(); if (cpu.gdt.GetDescriptor(sel,desc)) { sprintf(out1,"LDT selector=%04X, base=%08X limit=%08X*%X",sel,desc.GetBase(),desc.GetLimit(),desc.saved.seg.g?0x4000:1); - LOG(LOG_MISC,LOG_ERROR)(out1); + LOG(LOG_MISC,LOG_ERROR)("%s",out1); } }; @@ -2036,7 +2036,7 @@ public: } char filename[128]; - char args[256]; + char args[256+1]; cmd->FindCommand(1,temp_line); safe_strncpy(filename,temp_line.c_str(),128); @@ -2208,15 +2208,15 @@ bool CDebugVar::LoadVars(char* name) // read number of vars Bit16u num; - fread(&num,1,sizeof(num),f); + if (fread(&num,sizeof(num),1,f) != 1) return false; for (Bit16u i=0; i