orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
40 stars 3 forks source link

Simple debugging features #123

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Description of Change:

I would like to be able to dump the state of a running Orc program so I can see 
what is blocked where. It would also be really nice to have information about 
the state of locks and channels (number of waiters, messages, etc).

I would also like to be able to run Orc in a mode which will print a message 
every time an expression halts silently.

Benefit of/Reason for Change Request:
Both these features would be useful for debugging Orc programs. The first 
allows debugging of deadlocks and blocking issues. The second allows tracing of 
failures that caused a part of the program to halt prematurely.

Issues/Concerns with Change Request:
Both these features would produce large amount of output, most of which would 
be useful. So this is not a great debugging solution. However since we don't 
have anything else it would still be useful. However it should be accompanied 
with a warning that the output will be huge and hard to read.

Original issue reported on code.google.com by arthur.peters on 5 May 2013 at 6:52

GoogleCodeExporter commented 9 years ago
Typo above that may be confusing: Both these features would produce large 
amount of output, most of which would be useless. ...

PS: Grr, why doesn't google allow issue description editing?

Original comment by arthur.peters on 5 May 2013 at 6:59

GoogleCodeExporter commented 9 years ago
Partially addressed in r3275

Original comment by jthywissen on 16 Sep 2013 at 5:08

GoogleCodeExporter commented 9 years ago
After doing some debugging using a kludged facility related to this I think a 
basic feature like this should implement:
* Tracing of each time a site call halts'
* Filtering of which sites to watch, both by providing a list of sites to watch 
or a list of sites to ignore (watch all other site).
* A filtering switch to ignore all unapply sites that can be used along with 
the above.

Original comment by arthur.peters on 19 Sep 2013 at 8:17