diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2004-11-15 01:56:40 -0500 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2004-11-15 01:56:40 -0500 |
commit | fed64a3b3634315bce420b2bc63312c1fa62bb8f (patch) | |
tree | fa45a0e8c3154c7e1e27e393198fd1e2ad1cd5fb /base/callback.hh | |
parent | 2e0695ec9ae9bbc798c8164e9dd66f59fef93b4e (diff) | |
download | gem5-fed64a3b3634315bce420b2bc63312c1fa62bb8f.tar.xz |
Add support for sampled PC profiling to FullCPU.
Simple text list of symbol (or address) and count
will be dumped to m5prof.<cpu-name> if the cpu's
pc_sample_interval param is set.
SConscript:
Add cpu/full_cpu/pc_sample_profile.cc
base/callback.hh:
Add a comment about MakeCallback.
Fix type in another comment.
base/loader/symtab.cc:
Revamp findNearestSymbol() to provide addresses of both
nearest symbols (preceding and following) as well as
string for former.
Move global definition of debugSymbolTable here too.
base/loader/symtab.hh:
Revamp findNearestSymbol() to provide addresses of both
nearest symbols (preceding and following) as well as
string for former.
Move global declaration of debugSymbolTable here too.
cpu/exetrace.cc:
Use new findNearestSymbol() interface for trace symbols.
kern/linux/linux_system.cc:
sim/system.cc:
Remove extern of debugSymbolTable (now in symtab.hh)
sim/process.cc:
Initialize debugSymbolTable if binary has a symbol table.
--HG--
extra : convert_revision : 0b5393dc39c40ac88c953684708f1125da550671
Diffstat (limited to 'base/callback.hh')
-rw-r--r-- | base/callback.hh | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/base/callback.hh b/base/callback.hh index 342ab7e0f..cc2a2f429 100644 --- a/base/callback.hh +++ b/base/callback.hh @@ -32,7 +32,7 @@ #include <list> /** - * Generic callback class. This base class provides a virutal process + * Generic callback class. This base class provides a virtual process * function that gets called when the callback queue is processed. */ class Callback @@ -103,6 +103,8 @@ class CallbackQueue } }; +/// Helper template class to turn a simple class member function into +/// a callback. template <class T, void (T::* F)()> class MakeCallback : public Callback { @@ -111,8 +113,9 @@ class MakeCallback : public Callback public: MakeCallback(T *o) - : object(o) + : object(o) { } + void process() { (object->*F)(); } }; |