summaryrefslogtreecommitdiff
path: root/lldb/tools/debugserver/source/MacOSX/MachDYLD.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/debugserver/source/MacOSX/MachDYLD.h')
-rw-r--r--lldb/tools/debugserver/source/MacOSX/MachDYLD.h145
1 files changed, 0 insertions, 145 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/MachDYLD.h b/lldb/tools/debugserver/source/MacOSX/MachDYLD.h
deleted file mode 100644
index 1c7747cd1376..000000000000
--- a/lldb/tools/debugserver/source/MacOSX/MachDYLD.h
+++ /dev/null
@@ -1,145 +0,0 @@
-//===-- MachDYLD.h ----------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Created by Greg Clayton on 6/29/07.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef __MachDYLD_h__
-#define __MachDYLD_h__
-
-#include "DNBDefs.h"
-#include "DNBRuntimeAction.h"
-#include "PThreadMutex.h"
-#include <map>
-#include <vector>
-#include <string>
-
-class DNBBreakpoint;
-class MachProcess;
-
-class MachDYLD : public DNBRuntimeAction
-{
-public:
- MachDYLD ();
- virtual ~MachDYLD ();
-
- //------------------------------------------------------------------
- // DNBRuntimeAction required functions
- //------------------------------------------------------------------
- virtual void Initialize(nub_process_t pid);
- virtual void ProcessStateChanged(nub_state_t state);
- virtual void SharedLibraryStateChanged(DNBExecutableImageInfo *image_infos, nub_size_t num_image_infos);
-
-protected:
- bool CheckForDYLDInMemory();
- bool FoundDYLD() const;
- void Clear();
- void Dump(FILE *f) const;
- nub_process_t ProcessID() const { return m_pid; }
- uint32_t AddrByteSize() const { return m_addr_size; }
- nub_size_t CopyCurrentShlibInfo(DNBExecutableImageInfo **image_infos);
- nub_size_t CopyChangedShlibInfo(DNBExecutableImageInfo **image_infos);
- nub_addr_t GetSharedLibraryHeaderAddress(const char *shlib_path) const;
- bool CheckForDYLDInMemory(nub_addr_t addr);
- bool ReadDYLIBInfo ();
- static nub_bool_t BreakpointHit (nub_process_t pid, nub_thread_t tid, nub_break_t breakID, void *baton);
- void UpdateUUIDs();
-
- struct DYLIBInfo
- {
- nub_addr_t address; // Address of mach header for this dylib
- nub_addr_t mod_date; // Modification date for this dylib
- std::string path; // Resolved path for this dylib
- uint8_t uuid[16]; // UUID for this dylib if it has one, else all zeros
- std::vector<DNBSegment> segments; // All segment vmaddr and vmsize pairs for this executable (from memory of inferior)
-
- DYLIBInfo() :
- address(INVALID_NUB_ADDRESS),
- mod_date(0),
- path(),
- segments()
- {
- memset(uuid, 0, 16);
- }
-
- void Clear()
- {
- address = INVALID_NUB_ADDRESS;
- mod_date = 0;
- path.clear();
- segments.clear();
- memset(uuid, 0, 16);
- }
-
- bool operator == (const DYLIBInfo& rhs) const
- {
- return address == rhs.address
- && mod_date == rhs.mod_date
- && path == rhs.path
- && memcmp(uuid, rhs.uuid, 16) == 0;
- }
- bool UUIDValid() const
- {
- return uuid[ 0] || uuid[ 1] || uuid[ 2] || uuid[ 3] ||
- uuid[ 4] || uuid[ 5] || uuid[ 6] || uuid[ 7] ||
- uuid[ 8] || uuid[ 9] || uuid[10] || uuid[11] ||
- uuid[12] || uuid[13] || uuid[14] || uuid[15];
- }
-
- void Dump(FILE *f) const;
- typedef std::vector<DYLIBInfo> collection;
- typedef collection::iterator iterator;
- typedef collection::const_iterator const_iterator;
- };
- struct InfoHeader
- {
- uint32_t version; /* == 1 in Mac OS X 10.4, == 2 in Mac OS 10.5 */
- uint32_t dylib_info_count;
- nub_addr_t dylib_info_addr;
- nub_addr_t notification;
- bool processDetachedFromSharedRegion;
-
- InfoHeader() :
- version(0),
- dylib_info_count(0),
- dylib_info_addr(INVALID_NUB_ADDRESS),
- notification(INVALID_NUB_ADDRESS),
- processDetachedFromSharedRegion(false)
- {
- }
-
- void Clear()
- {
- version = 0;
- dylib_info_count = 0;
- dylib_info_addr = INVALID_NUB_ADDRESS;
- notification = INVALID_NUB_ADDRESS;
- processDetachedFromSharedRegion = false;
- }
-
- bool IsValid() const
- {
- return version == 1 || version == 2;
- }
- };
- static nub_size_t CopySharedLibraryInfo(DYLIBInfo::collection& dylib_coll, DNBExecutableImageInfo **image_infos);
- static nub_size_t CopySharedInfoCallback(nub_process_t pid, struct DNBExecutableImageInfo **image_infos, nub_bool_t only_changed, void *baton);
- nub_process_t m_pid;
- uint32_t m_addr_size;
- nub_addr_t m_dyld_addr;
- nub_addr_t m_dyld_all_image_infos_addr;
- InfoHeader m_dylib_info_header;
- DYLIBInfo::collection m_current_dylibs; // Current shared libraries information
- DYLIBInfo::collection m_changed_dylibs; // Shared libraries that changed since last shared library update
- nub_break_t m_notify_break_id;
- mutable PThreadMutex m_dyld_info_mutex;
-};
-
-#endif // #ifndef __MachDYLD_h__