diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/common/break_points.cpp | 90 | ||||
-rw-r--r-- | src/common/break_points.h | 49 | ||||
-rw-r--r-- | src/common/chunk_file.h | 4 | ||||
-rw-r--r-- | src/common/debug_interface.h | 36 | ||||
-rw-r--r-- | src/common/memory_util.cpp | 21 | ||||
-rw-r--r-- | src/common/swap.h | 4 | ||||
-rw-r--r-- | src/common/synchronized_wrapper.h | 1 |
8 files changed, 9 insertions, 197 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 2be6fe996..959084cdf 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -32,7 +32,6 @@ set(HEADERS common_funcs.h common_paths.h common_types.h - debug_interface.h emu_window.h file_util.h hash.h diff --git a/src/common/break_points.cpp b/src/common/break_points.cpp index 023a485a4..e7d0d3e43 100644 --- a/src/common/break_points.cpp +++ b/src/common/break_points.cpp @@ -2,7 +2,6 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include "common/debug_interface.h" #include "common/break_points.h" #include "common/logging/log.h" @@ -101,92 +100,3 @@ void BreakPoints::Clear() m_BreakPoints.clear(); } - -MemChecks::TMemChecksStr MemChecks::GetStrings() const -{ - TMemChecksStr mcs; - for (auto memcheck : m_MemChecks) - { - std::stringstream mc; - mc << std::hex << memcheck.StartAddress; - mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " " - << (memcheck.bRange ? "n" : "") - << (memcheck.OnRead ? "r" : "") - << (memcheck.OnWrite ? "w" : "") - << (memcheck.Log ? "l" : "") - << (memcheck.Break ? "p" : ""); - mcs.push_back(mc.str()); - } - - return mcs; -} - -void MemChecks::AddFromStrings(const TMemChecksStr& mcs) -{ - for (auto mcs_item : mcs) - { - TMemCheck mc; - std::stringstream mcstr; - mcstr << std::hex << mcs_item; - mcstr >> mc.StartAddress; - mc.bRange = mcs_item.find("n") != mcs_item.npos; - mc.OnRead = mcs_item.find("r") != mcs_item.npos; - mc.OnWrite = mcs_item.find("w") != mcs_item.npos; - mc.Log = mcs_item.find("l") != mcs_item.npos; - mc.Break = mcs_item.find("p") != mcs_item.npos; - if (mc.bRange) - mcstr >> mc.EndAddress; - else - mc.EndAddress = mc.StartAddress; - Add(mc); - } -} - -void MemChecks::Add(const TMemCheck& rMemoryCheck) -{ - if (GetMemCheck(rMemoryCheck.StartAddress) == 0) - m_MemChecks.push_back(rMemoryCheck); -} - -void MemChecks::Remove(u32 Address) -{ - auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; }; - auto it = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond); - if (it != m_MemChecks.end()) - m_MemChecks.erase(it); -} - -TMemCheck *MemChecks::GetMemCheck(u32 address) -{ - for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) - { - if (i->bRange) - { - if (address >= i->StartAddress && address <= i->EndAddress) - return &(*i); - } - else if (i->StartAddress == address) - return &(*i); - } - - // none found - return 0; -} - -void TMemCheck::Action(DebugInterface *debug_interface, u32 iValue, u32 addr, - bool write, int size, u32 pc) -{ - if ((write && OnWrite) || (!write && OnRead)) - { - if (Log) - { - LOG_DEBUG(Debug_Breakpoint, "CHK %08x (%s) %s%i %0*x at %08x (%s)", - pc, debug_interface->getDescription(pc).c_str(), - write ? "Write" : "Read", size*8, size*2, iValue, addr, - debug_interface->getDescription(addr).c_str() - ); - } - if (Break) - debug_interface->breakNow(); - } -} diff --git a/src/common/break_points.h b/src/common/break_points.h index f0a55e7b1..b0629df37 100644 --- a/src/common/break_points.h +++ b/src/common/break_points.h @@ -18,31 +18,6 @@ struct TBreakPoint bool bTemporary; }; -struct TMemCheck -{ - TMemCheck(): - StartAddress(0), EndAddress(0), - bRange(false), OnRead(false), OnWrite(false), - Log(false), Break(false), numHits(0) - { } - - u32 StartAddress; - u32 EndAddress; - - bool bRange; - - bool OnRead; - bool OnWrite; - - bool Log; - bool Break; - - u32 numHits; - - void Action(DebugInterface *dbg_interface, u32 iValue, u32 addr, - bool write, int size, u32 pc); -}; - // Code breakpoints. class BreakPoints { @@ -73,27 +48,3 @@ private: TBreakPoints m_BreakPoints; u32 m_iBreakOnCount; }; - - -// Memory breakpoints -class MemChecks -{ -public: - typedef std::vector<TMemCheck> TMemChecks; - typedef std::vector<std::string> TMemChecksStr; - - TMemChecks m_MemChecks; - - const TMemChecks& GetMemChecks() { return m_MemChecks; } - - TMemChecksStr GetStrings() const; - void AddFromStrings(const TMemChecksStr& mcs); - - void Add(const TMemCheck& rMemoryCheck); - - // memory breakpoint - TMemCheck *GetMemCheck(u32 address); - void Remove(u32 _Address); - - void Clear() { m_MemChecks.clear(); }; -}; diff --git a/src/common/chunk_file.h b/src/common/chunk_file.h index 8be0b1109..1e1bcff31 100644 --- a/src/common/chunk_file.h +++ b/src/common/chunk_file.h @@ -575,10 +575,10 @@ public: } template<class T, LinkedListItem<T>* (*TNew)(), void (*TFree)(LinkedListItem<T>*), void (*TDo)(PointerWrap&, T*)> - void DoLinkedList(LinkedListItem<T>*& list_start, LinkedListItem<T>** list_end=0) + void DoLinkedList(LinkedListItem<T>*& list_start, LinkedListItem<T>** list_end = nullptr) { LinkedListItem<T>* list_cur = list_start; - LinkedListItem<T>* prev = 0; + LinkedListItem<T>* prev = nullptr; while (true) { diff --git a/src/common/debug_interface.h b/src/common/debug_interface.h deleted file mode 100644 index 32f55cb59..000000000 --- a/src/common/debug_interface.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include <cstring> -#include <string> - -class DebugInterface -{ -protected: - virtual ~DebugInterface() {} - -public: - virtual void disasm(unsigned int /*address*/, char *dest, int /*max_size*/) {strcpy(dest, "NODEBUGGER");} - virtual void getRawMemoryString(int /*memory*/, unsigned int /*address*/, char *dest, int /*max_size*/) {strcpy(dest, "NODEBUGGER");} - virtual int getInstructionSize(int /*instruction*/) {return 1;} - virtual bool isAlive() {return true;} - virtual bool isBreakpoint(unsigned int /*address*/) {return false;} - virtual void setBreakpoint(unsigned int /*address*/){} - virtual void clearBreakpoint(unsigned int /*address*/){} - virtual void clearAllBreakpoints() {} - virtual void toggleBreakpoint(unsigned int /*address*/){} - virtual bool isMemCheck(unsigned int /*address*/) {return false;} - virtual void toggleMemCheck(unsigned int /*address*/){} - virtual unsigned int readMemory(unsigned int /*address*/){return 0;} - virtual void writeExtraMemory(int /*memory*/, unsigned int /*value*/, unsigned int /*address*/) {} - virtual unsigned int readExtraMemory(int /*memory*/, unsigned int /*address*/){return 0;} - virtual unsigned int readInstruction(unsigned int /*address*/){return 0;} - virtual unsigned int getPC() {return 0;} - virtual void setPC(unsigned int /*address*/) {} - virtual void step() {} - virtual void runToBreakpoint() {} - virtual void breakNow() {} - virtual void insertBLR(unsigned int /*address*/, unsigned int /*value*/) {} - virtual void showJitResults(unsigned int /*address*/) {}; - virtual int getColor(unsigned int /*address*/){return 0xFFFFFFFF;} - virtual std::string getDescription(unsigned int /*address*/) = 0; -}; diff --git a/src/common/memory_util.cpp b/src/common/memory_util.cpp index 5ef784224..07c7f79c8 100644 --- a/src/common/memory_util.cpp +++ b/src/common/memory_util.cpp @@ -28,9 +28,9 @@ void* AllocateExecutableMemory(size_t size, bool low) { #if defined(_WIN32) - void* ptr = VirtualAlloc(0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + void* ptr = VirtualAlloc(nullptr, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); #else - static char *map_hint = 0; + static char* map_hint = nullptr; #if defined(ARCHITECTURE_X64) && !defined(MAP_32BIT) // This OS has no flag to enforce allocation below the 4 GB boundary, // but if we hint that we want a low address it is very likely we will @@ -49,9 +49,6 @@ void* AllocateExecutableMemory(size_t size, bool low) , -1, 0); #endif /* defined(_WIN32) */ - // printf("Mapped executable memory at %p (size %ld)\n", ptr, - // (unsigned long)size); - #ifdef _WIN32 if (ptr == nullptr) { @@ -69,7 +66,6 @@ void* AllocateExecutableMemory(size_t size, bool low) { map_hint += size; map_hint = (char*)round_page(map_hint); /* round up to the next page */ - // printf("Next map will (hopefully) be at %p\n", map_hint); } } #endif @@ -85,18 +81,15 @@ void* AllocateExecutableMemory(size_t size, bool low) void* AllocateMemoryPages(size_t size) { #ifdef _WIN32 - void* ptr = VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE); + void* ptr = VirtualAlloc(nullptr, size, MEM_COMMIT, PAGE_READWRITE); #else - void* ptr = mmap(0, size, PROT_READ | PROT_WRITE, + void* ptr = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); if (ptr == MAP_FAILED) ptr = nullptr; #endif - // printf("Mapped memory at %p (size %ld)\n", ptr, - // (unsigned long)size); - if (ptr == nullptr) LOG_ERROR(Common_Memory, "Failed to allocate raw memory"); @@ -117,9 +110,6 @@ void* AllocateAlignedMemory(size_t size,size_t alignment) #endif #endif - // printf("Mapped memory at %p (size %ld)\n", ptr, - // (unsigned long)size); - if (ptr == nullptr) LOG_ERROR(Common_Memory, "Failed to allocate aligned memory"); @@ -131,11 +121,8 @@ void FreeMemoryPages(void* ptr, size_t size) if (ptr) { #ifdef _WIN32 - if (!VirtualFree(ptr, 0, MEM_RELEASE)) LOG_ERROR(Common_Memory, "FreeMemoryPages failed!\n%s", GetLastErrorMsg()); - ptr = nullptr; // Is this our responsibility? - #else munmap(ptr, size); #endif diff --git a/src/common/swap.h b/src/common/swap.h index b92e5bfa4..a7c37bc44 100644 --- a/src/common/swap.h +++ b/src/common/swap.h @@ -148,7 +148,7 @@ struct swap_struct_t { typedef swap_struct_t<T, F> swapped_t; protected: - T value; + T value = T(); static T swap(T v) { return F::swap(v); @@ -158,7 +158,7 @@ public: return swap(value); } - swap_struct_t() : value((T)0) {} + swap_struct_t() = default; swap_struct_t(const T &v): value(swap(v)) {} template <typename S> diff --git a/src/common/synchronized_wrapper.h b/src/common/synchronized_wrapper.h index ae5e8b1ed..07105a198 100644 --- a/src/common/synchronized_wrapper.h +++ b/src/common/synchronized_wrapper.h @@ -55,6 +55,7 @@ public: SynchronizedRef& operator=(SynchronizedRef&) = delete; SynchronizedRef& operator=(SynchronizedRef&& o) { std::swap(wrapper, o.wrapper); + return *this; } T& operator*() { return wrapper->data; } |