summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2009-11-18 13:55:57 -0800
committerBrad Beckmann <Brad.Beckmann@amd.com>2009-11-18 13:55:57 -0800
commit5492f71755d71ba47f3510e51510b1bbe96b743a (patch)
tree5c7c7f4a3ab4c4166cfac4f62a252f375204790c
parentc3204421d88013d1fd14eb6f642373b2b3893fbc (diff)
downloadgem5-5492f71755d71ba47f3510e51510b1bbe96b743a.tar.xz
ruby: Ruby debug print fixes.
-rw-r--r--src/mem/ruby/common/Debug.cc31
-rw-r--r--src/mem/ruby/common/Debug.hh1
2 files changed, 22 insertions, 10 deletions
diff --git a/src/mem/ruby/common/Debug.cc b/src/mem/ruby/common/Debug.cc
index 1115152f4..cb9fdf082 100644
--- a/src/mem/ruby/common/Debug.cc
+++ b/src/mem/ruby/common/Debug.cc
@@ -39,6 +39,7 @@
#include "mem/ruby/common/Debug.hh"
#include "mem/ruby/eventqueue/RubyEventQueue.hh"
#include "mem/gems_common/util.hh"
+#include "base/misc.hh"
class Debug;
extern Debug* g_debug_ptr;
@@ -70,6 +71,7 @@ DebugComponentData debugComponents[] =
{"Cache", 'c' },
{"Predictor", 'p' },
{"Allocator", 'a' },
+ {"Memory", 'M' },
};
extern "C" void changeDebugVerbosity(VerbosityLevel vb);
@@ -95,19 +97,27 @@ Debug::Debug()
Debug::Debug( const string & name, const vector<string> & argv )
{
- for (size_t i=0;i<argv.size();i+=2){
- if (argv[i] == "filter_string")
- setFilterString( argv[i+1].c_str() );
- else if (argv[i] == "verbosity_string")
+ //
+ // must clear the filter before adding filter strings
+ //
+ clearFilter();
+
+ for (size_t i=0;i<argv.size();i+=2) {
+ if (argv[i] == "filter_string") {
+ if (setFilterString(argv[i+1].c_str())) {
+ fatal("could not set filter string to %s\n", argv[i+1].c_str());
+ }
+ } else if (argv[i] == "verbosity_string") {
setVerbosityString( argv[i+1].c_str() );
- else if (argv[i] == "start_time")
+ } else if (argv[i] == "start_time") {
m_starting_cycle = atoi( argv[i+1].c_str() );
- else if (argv[i] == "output_filename")
+ } else if (argv[i] == "output_filename") {
setDebugOutputFile( argv[i+1].c_str() );
- else if (argv[i] == "protocol_trace")
+ } else if (argv[i] == "protocol_trace") {
m_protocol_trace = string_to_bool(argv[i+1]);
- else
- assert(0);
+ } else {
+ fatal("invalid argument %s\n");
+ }
}
}
@@ -119,7 +129,8 @@ Debug::Debug( const char *filterString, const char *verboseString,
debug_cout_ptr = &cout;
m_starting_cycle = filterStartTime;
- setFilterString( filterString );
+ if (setFilterString(filterString))
+ fatal("could not set filter string to %s\n", filterString);
setVerbosityString( verboseString );
setDebugOutputFile( filename );
}
diff --git a/src/mem/ruby/common/Debug.hh b/src/mem/ruby/common/Debug.hh
index c038d57c2..03e123866 100644
--- a/src/mem/ruby/common/Debug.hh
+++ b/src/mem/ruby/common/Debug.hh
@@ -63,6 +63,7 @@ enum DebugComponents
CACHE_COMP,
PREDICTOR_COMP,
ALLOCATOR_COMP,
+ MEMORY_COMP,
NUMBER_OF_COMPS
};