Message30002
> If you are saying that it is unavoidable in your
> application: I have difficulties believing this. For
> example, you could do
>
> s.e = sys.exc_info()[:2]
>
> This would drop the traceback, and thus not create a cyclic
> reference. Since, in the program you present, the traceback
> is never used, this looks like a "legal" simplification (of
> course, you don't use s.e at all in this program, so I can
> only guess that you don't need the traceback in your real
> application).
"This was observed in production code, where exc_info
tuples are saved for re-raising later to get the stack-
appending behaviour tracebacks and 'raise' perform."
I would like the traceback object so that I can re-raise the error. I can stringify it as tim_one suggests, but that can't be used with 'raise' and 'try','except' later.
It is not important for my application to have all the references that the traceback object contains, which is what is causing the massive memory requirement. If I could replace the exc_info()[2] with a traceback look-alike that only held file, line, etc information for printing a standard traceback, that would solve this problem. |
|
Date |
User |
Action |
Args |
2007-08-23 14:43:01 | admin | link | issue1565525 messages |
2007-08-23 14:43:01 | admin | create | |
|