|
21 | 21 | # Our local modules |
22 | 22 | from trepan.processor.command.base_subcmd import DebuggerSubcommand |
23 | 23 | from trepan.misc import pretty_modfunc_name |
24 | | -# from pyficache import get_linecache_info |
25 | | -from pyficache import cache_code_lines |
| 24 | +from pyficache import get_linecache_info |
26 | 25 |
|
27 | 26 |
|
28 | 27 | class InfoOffsets(DebuggerSubcommand): |
@@ -98,29 +97,19 @@ def run(self, args): |
98 | 97 |
|
99 | 98 | # No line number. Use current frame line number |
100 | 99 | filename = self.core.canonic_filename(self.proc.curframe) |
101 | | - file_info = cache_code_lines( |
102 | | - filename, toplevel_only=False, include_offsets=True |
103 | | - ) |
104 | | - if file_info: |
| 100 | + linecache_info = get_linecache_info(filename) |
| 101 | + if linecache_info: |
105 | 102 | self.section(f"Line: fn, offset for table for {filename}") |
106 | 103 | lines = [] |
107 | | - # linecache_info = get_linecache_info(filename) |
108 | | - # line_info = linecache_info.line_info |
109 | | - |
110 | | - for line_number, line_info in file_info.line_numbers.items(): |
111 | | - if not name or any(li.name == name for li in line_info): |
| 104 | + linecache_info = get_linecache_info(filename) |
| 105 | + line_info = linecache_info.line_info |
| 106 | + for line_number, code_offset_pair in line_info.items(): |
| 107 | + for code, offset in code_offset_pair: |
112 | 108 | lines.append( |
113 | 109 | "%4d: %s" |
114 | 110 | % ( |
115 | 111 | line_number, |
116 | | - ", ".join( |
117 | | - [ |
118 | | - "%s *%d" |
119 | | - % (pretty_modfunc_name(li.name), li.offsets[0]) |
120 | | - for li in line_info |
121 | | - if not name or li.name == name |
122 | | - ] |
123 | | - ), |
| 112 | + "%s *%d"% (pretty_modfunc_name(code), offset) |
124 | 113 | ) |
125 | 114 | ) |
126 | 115 | m = self.columnize_commands(list(sorted(lines))) |
|
0 commit comments