Hey guys,
I hate to complain, but I just spent almost an hour debugging debug flags.
I wanted to raise the problem, and get it on the mailing list in case
anyone else runs into it.
I recently updated to the current gem5 repo, and started merging some
patches from before the changes to debug tracing. When I tried to compile,
I kept getting errors such as:
build/X86_FS/mem/ruby/system/Sequencer.cc: In member function 'void
Sequencer::recordStatistic(SequencerStatisticType)':
build/X86_FS/mem/ruby/system/Sequencer.cc:757: error: 'RubyStats' is not a
member of 'Debug'
With the old trace flags, I could simply write a DPRINTF statement with a
new flag, and add the new flag name in the corresponding SConscript with
"TraceFlag('<flag_name>')". Even after fixing the SConscript to use
"DebugFlag" instead of "TraceFlag", I was still getting these errors. I
searched on the mailing list, but couldn't find anything. After inspecting
a bunch of code, I got a hint that I might need to include some generated
code in the source file that uses the trace flag (for reference, the
generated code is: ./build/<arch>_<mode>/debug/<flag_name>.hh). This was
painful to figure out, especially since the debug flag files are generated
on the fly during compilation, so not all of them are in the build directory
when you run across the error.
So, besides the mess of work for me to fix my patches (I need to #include
each generated debug flag file in the source files that use them), this is
very tricky to debug and might also cause pain down the road, since
#includes tend to be harder to merge than typical functional code changes.
I'd love a cleaner, less-obfuscated solution to this. Can someone
describe how it's done differently now and how we might be able to fix it?
Can we generate a single debug flags file instead of one for each flag?
Thanks,
Joel
--
Joel Hestness
PhD Student, Computer Architecture
Dept. of Computer Science, University of Texas - Austin
http://www.cs.utexas.edu/~hestness
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev