From: Joel VanderWerf Date: 2007-07-11T02:02:18+09:00 Subject: Re: set_trace_func and exceptions Robert Klemme wrote: ... > It does not make sense to allow exceptions to be thrown from > set_trace_func. I do agree however that at least some form of warning > should be generated but I think the exception should be ignored > otherwise. But then again, since set_trace_func is more of a > debugging feature it's not too important to fix it IMHO. But set_trace_func has been used for more than debugging (Binding.of_caller, right?) Arguably, that's a kludge. What if you are using set_trace_func as a debugging tool to detect some problem (memory management, for example), and you want to stop or signal the program when the problem is detected? This issue came up for me because I was tinkering with some code for the "CPU/Memory limiting" thread. I was trying to use set_trace_func in a stupid way to count "steps" per thread, as a surrogate for cpu cycles, and raise an exception when a limit was exceeded. Perhaps this use of exceptions (as a way of signaling back to the calling code) is not appropriate with set_trace_func. There are other ways to do this that would work in the context of the "CPU/Memory limiting" thread. After thinking about it, I guess the only change I would ask for is some kind of warning (if running with -w) that an exception happened in the trace func, rather than a silent exit from the program. -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407