summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/ProfileObjectiveC.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/debugserver/source/ProfileObjectiveC.h')
-rw-r--r--lldb/tools/debugserver/source/ProfileObjectiveC.h82
1 files changed, 0 insertions, 82 deletions
diff --git a/lldb/tools/debugserver/source/ProfileObjectiveC.h b/lldb/tools/debugserver/source/ProfileObjectiveC.h
deleted file mode 100644
index 8a5c13db32a..00000000000
--- a/lldb/tools/debugserver/source/ProfileObjectiveC.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- ProfileObjectiveC.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 10/4/07.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef __ProfileObjectiveC_h__
-#define __ProfileObjectiveC_h__
-
-#include "DNB.h"
-#include "DNBRuntimeAction.h"
-#include <map>
-#include <sys/time.h>
-
-class ProfileObjectiveC : public DNBRuntimeAction
-{
-public:
- ProfileObjectiveC();
- virtual ~ProfileObjectiveC();
- //------------------------------------------------------------------
- // 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:
- typedef uint32_t objc_selector_t;
- typedef uint32_t objc_class_ptr_t;
- void Clear();
- static nub_bool_t MessageSendBreakpointCallback(nub_process_t pid, nub_thread_t tid, nub_break_t breakID, void *userData);
- static nub_bool_t MessageSendSuperBreakpointCallback(nub_process_t pid, nub_thread_t tid, nub_break_t breakID, void *userData);
- void DumpStats(nub_process_t pid, FILE *f);
- void SetStartTime();
- void SelectorHit(objc_class_ptr_t isa, objc_selector_t sel);
- typedef std::map<objc_selector_t, uint32_t> SelectorHitCount;
- typedef std::map<objc_class_ptr_t, SelectorHitCount> ClassStatsMap;
- typedef struct Probe
- {
- nub_addr_t addr;
- nub_break_t breakID;
- Probe() : addr(INVALID_NUB_ADDRESS), breakID(INVALID_NUB_BREAK_ID) {}
- void Clear()
- {
- addr = INVALID_NUB_ADDRESS;
- breakID = INVALID_NUB_BREAK_ID;
- }
- bool IsValid() const
- {
- return (addr != INVALID_NUB_ADDRESS) && (NUB_BREAK_ID_IS_VALID(breakID));
- }
- };
-
- uint32_t IncrementHitCount() { return ++m_hit_count; }
- bool ShouldDumpStats() const { return m_dump_count && (m_hit_count % m_dump_count) == 0; }
-
- nub_process_t m_pid;
- Probe m_objc_msgSend;
- Probe m_objc_msgSendSuper;
- uint32_t m_hit_count; // Number of times we have gotten one of our breakpoints hit
- uint32_t m_dump_count; // Dump stats every time the hit count reaches a multiple of this value
-#if defined (__powerpc__) || defined (__ppc__)
- enum
- {
- k_opcode_size = 4
- };
- uint8_t m_objc_msgSend_opcode[k_opcode_size]; // Saved copy of first opcode in objc_msgSend
- Probe m_objc_msgSend_rtp; // COMM page probe info for objc_msgSend
-#endif
- struct timeval m_begin_time;
- ClassStatsMap m_objcStats;
-};
-
-
-#endif // #ifndef __ProfileObjectiveC_h__
OpenPOWER on IntegriCloud