Skip to content

Commit d8f09ec

Browse files
committed
Start handling eval temp file remapping better
1 parent d9c6e4c commit d8f09ec

3 files changed

Lines changed: 15 additions & 13 deletions

File tree

trepan/lib/core.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,23 @@ def canonic_filename(self, frame: Optional[FrameType]) -> str:
193193
canonic() value, a string."""
194194
if frame is None:
195195
return "?? - No frame"
196+
197+
filename = frame.f_code.co_filename
198+
if "<string>" == filename:
199+
if (new_filename := pyficache.main.code2_tempfile.get(frame.f_code)):
200+
filename = new_filename
196201
return self.canonic(frame.f_code.co_filename)
197202

198-
def filename(self, filename=None):
203+
def filename(self, filename=None) -> Optional[str]:
199204
"""Return filename or the basename of that depending on the
200205
basename setting"""
201206
if filename is None:
202207
if self.debugger.mainpyfile:
203208
filename = self.debugger.mainpyfile
204209
else:
205210
return None
211+
212+
filename = pyficache.unmap_file(filename)
206213
if self.debugger.settings["basename"]:
207214
return osp.basename(filename)
208215
return filename

trepan/lib/stack.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -335,17 +335,9 @@ def format_stack_entry(
335335

336336
def frame2file(core_obj, frame, canonic=True):
337337
if canonic:
338-
filename = core_obj.filename(core_obj.canonic_filename(frame))
338+
return core_obj.filename(core_obj.canonic_filename(frame))
339339
else:
340-
filename = core_obj.filename(frame.f_code.co_filename)
341-
342-
print("WOOT")
343-
# if frame_info := FrameInfo.get(frame):
344-
# if canonic:
345-
# return core_obj.filename(frame_info.filename)
346-
# return frame_info.filename
347-
348-
return filename
340+
return core_obj.filename(frame.f_code.co_filename)
349341

350342

351343
def frame2filesize(frame):

trepan/processor/print.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,11 @@ def prefix_for_source_text(source_text: str, maxwidth: int) -> str:
206206
dbgr_obj.eval_string,
207207
tempdir=proc_obj.settings("tempdir"),
208208
)
209-
pyficache.remap_file(filename, remapped_file)
209+
# pyficache.remap_file(filename, remapped_file)
210+
pyficache.main.code2_tempfile[frame.f_code] = filename
211+
print(f"XXX1 WOOT {pyficache.main.code2_tempfile}")
210212
filename, line_number = pyficache.unmap_file_line(
211-
filename, line_number
213+
remapped_file, line_number
212214
)
213215
pass
214216
pass
@@ -327,6 +329,7 @@ def prefix_for_source_text(source_text: str, maxwidth: int) -> str:
327329
pyficache.remap_file(remapped_file, filename)
328330
fd.close()
329331
if source_text:
332+
pyficache.main.code2_tempfile[frame.f_code] = remapped_file
330333
intf_obj.msg(
331334
f"remapped string {prefix_for_source_text(source_text, 10)} to file {remapped_file}"
332335
)

0 commit comments

Comments
 (0)