Commit 72ae6c80 authored by Phillip J. Eby's avatar Phillip J. Eby

Fix infinite regress when inspecting <string> or <stdin> frames.

parent de9b624f
......@@ -353,7 +353,13 @@ def getsourcefile(object):
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename) or hasattr(getmodule(object), '__loader__'):
if os.path.exists(filename):
return filename
# Ugly but necessary - '<stdin>' and '<string>' mean that getmodule()
# would infinitely recurse, because they're not real files nor loadable
# Note that this means that writing a PEP 302 loader that uses '<'
# at the start of a filename is now not a good idea. :(
if filename[:1]!='<' and hasattr(getmodule(object), '__loader__'):
return filename
def getabsfile(object):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment