Re: [Gems-users] Debugging in Ruby


Date: Thu, 20 Jul 2006 22:41:28 +0200
From: "Daniele Bordes" <daniele.bordes@xxxxxxxxx>
Subject: Re: [Gems-users] Debugging in Ruby
2006/7/20, James Wang <jameswang99@xxxxxxxxx>:
Hi All:
   I am trying to write a transactional memory protocol, and I am having trouble to make sense of a few transactions, and I would like to stop execution when particular memory location is modified. Is this possible to do in Ruby, or Simics?

Well, I am not sure, but I think the only way is using a debugger with
Ruby (or with tester.exec) and put some watchpoints over variables
which implement memory locations or breakpoints over functions which
implement data writing. At first, I think you should try to look
inside "generated" directory and source code files regarding
L1_cache_controllers (perform a file search like this one: "L1*" ):
you will find functions which writes in L1_cache; by debugging and
putting breakpoints, try to follow the code and to find all the
functions which write data).

   I am also interested in using the tester.exec to run transactional traces. How do I do it? What's the short hand for Begin/End Transaction? Where can I find more documentations?
   Thanks for any comment in advance.

Regards
James

At first, I think you should read this:

http://www.cs.wisc.edu/gems/doc/wiki/moin.cgi/How_do_I_understand_a_Protocol

Tester.exec allows you to perform trace-driven simulations; the url
I've given shows you only two kind of memory operations:  data load
(LD) and data store (ST); to find other kind of possible operations, I
think you should find a file containing the definition of
"string_to_CacheRequestType" function; this function is called in
TraceRecord::input, and is used to "interpret" the operations (which
could be LD, ST and many others...) you specify in the trace file.

Sorry if I can't be more accurate, but at the moment I have some
personal troubles and I can't see all source code files.
I hope these information are useful for you, and to be more accurate
as soon as possible.
[← Prev in Thread] Current Thread [Next in Thread→]