@@ -94,18 +94,25 @@ def print_source_line(msg, lineno, line, event_str=None, is_pyasm: bool = False)
9494
9595
9696def print_source_location_info (
97- print_fn , filename , lineno , fn_name = None , f_lasti = None , remapped_file = None
97+ print_fn ,
98+ filename ,
99+ line_number : int ,
100+ column_number : int ,
101+ fn_name = None ,
102+ f_lasti = None ,
103+ remapped_file = None ,
98104):
99105 """Print out a source location , e.g. the first line in
100106 line in:
101- (/tmp.py:2 @21): <module>
107+ (/tmp.py:2:4 @21): <module>
102108 L -- 2 import sys,os
103109 (trepan3k)
104110 """
111+ col_str = f":{ column_number } " if column_number >= 0 else ""
105112 if remapped_file and filename != remapped_file :
106- mess = f"({ remapped_file } :{ lineno } remapped { filename } "
113+ mess = f"({ remapped_file } :{ line_number } { col_str } remapped { filename } "
107114 else :
108- mess = f"({ filename } :{ lineno } "
115+ mess = f"({ filename } :{ line_number } { col_str } "
109116 if f_lasti and f_lasti != - 1 :
110117 mess += " @%d" % f_lasti
111118 pass
@@ -152,13 +159,13 @@ def prefix_for_filename(deparsed_text: str) -> str:
152159 eval_kind = None
153160 i_stack = min (i_stack , len (proc_obj .stack ) - 1 )
154161 while i_stack >= 0 :
155- frame , lineno = proc_obj .stack [i_stack ]
162+ frame , line_number , column_number = proc_obj .stack [i_stack ]
156163
157164 # Before starting a program a location for a module with
158165 # line number 0 may be reported. Treat that as though
159166 # we were on the first line.
160- if frame .f_code .co_name == "<module>" and lineno == 0 :
161- lineno = 1
167+ if frame .f_code .co_name == "<module>" and line_number == 0 :
168+ line_number = 1
162169
163170 i_stack -= 1
164171
@@ -181,7 +188,7 @@ def prefix_for_filename(deparsed_text: str) -> str:
181188 tempdir = proc_obj .settings ("tempdir" ),
182189 )
183190 pyficache .remap_file (filename , remapped_file )
184- filename , lineno = pyficache .unmap_file_line (filename , lineno )
191+ filename , line_number = pyficache .unmap_file_line (filename , line_number )
185192 pass
186193 pass
187194 elif "<string>" == filename :
@@ -250,7 +257,7 @@ def prefix_for_filename(deparsed_text: str) -> str:
250257 opts ["style" ] = "plain"
251258 opts ["output" ] = "plain"
252259
253- line = pyficache .getline (filename , lineno , opts )
260+ line = pyficache .getline (filename , line_number , opts )
254261
255262 if not line :
256263 if (
@@ -266,8 +273,8 @@ def prefix_for_filename(deparsed_text: str) -> str:
266273 temp_filename , _ = deparse_and_cache (
267274 co , proc_obj .errmsg , tempdir = tempdir
268275 )
269- lineno = 1
270- # _, lineno = pyficache.unmap_file_line(temp_filename, lineno , True)
276+ line_number = 1
277+ # _, line_number = pyficache.unmap_file_line(temp_filename, line_number , True)
271278 if temp_filename :
272279 filename = temp_filename
273280 pass
@@ -299,7 +306,7 @@ def prefix_for_filename(deparsed_text: str) -> str:
299306
300307 pass
301308
302- line = linecache .getline (filename , lineno , proc_obj .curframe .f_globals )
309+ line = linecache .getline (filename , line_number , proc_obj .curframe .f_globals )
303310 if not line :
304311 m = re .search ("^<frozen (.*)>" , filename )
305312 if m and m .group (1 ):
@@ -313,13 +320,13 @@ def prefix_for_filename(deparsed_text: str) -> str:
313320 remapped_file = sys .modules [remapped_file ].__file__
314321 pyficache .remap_file (filename , remapped_file )
315322 line = linecache .getline (
316- remapped_file , lineno , proc_obj .curframe .f_globals
323+ remapped_file , line_number , proc_obj .curframe .f_globals
317324 )
318325 else :
319326 remapped_file = m .group (1 )
320327 code = proc_obj .curframe .f_code
321328 filename , line = cmdfns .deparse_getline (
322- code , remapped_file , lineno , opts
329+ code , remapped_file , line_number , opts
323330 )
324331 pass
325332 pass
@@ -342,7 +349,8 @@ def prefix_for_filename(deparsed_text: str) -> str:
342349 print_source_location_info (
343350 intf_obj .msg ,
344351 filename ,
345- lineno ,
352+ line_number ,
353+ column_number ,
346354 fn_name ,
347355 remapped_file = remapped_file ,
348356 f_lasti = last_i ,
@@ -351,7 +359,7 @@ def prefix_for_filename(deparsed_text: str) -> str:
351359 if proc_obj .event :
352360 print_source_line (
353361 intf_obj .msg ,
354- lineno ,
362+ line_number ,
355363 line ,
356364 proc_obj .event2short [proc_obj .event ],
357365 is_pyasm ,
0 commit comments