Commit cb00990
committed
[lldb] Add support for PC-less scripted frames
This adds support for scripted frames without valid PC addresses, allowing
them to display properly without showing 0xffffffffffffffff.
Changes include:
- Make StackFrame::GetSymbolContext() resilient to PC-less frames by adding
an early return when the lookup address is invalid, preserving any
already-populated SymbolContext fields.
- Populate module and compile unit for scripted frames by searching existing
modules for matching LineEntry files, falling back to the scripted module
- Create synthetic CompileUnits with language type deduced from the script
- Fix frame formatting to avoid extra spaces for PC-less frames by removing
the space from the frame format string and adding it conditionally in
FormatEntity::Format only when the frame has a valid PC.
- Add fallbacks in FormatEntity for FunctionName, FunctionNameNoArgs, and
FunctionNameWithArgs to use StackFrame methods when SymbolContext lookup
fails, enabling proper function name display for scripted frames.
- Update test to include a scripted frame pointing to Python source with a
LineEntry referencing the Python file containing my_python_function().
Signed-off-by: Med Ismail Bennani <[email protected]>1 parent 0e0c0b7 commit cb00990
File tree
4 files changed
+239
-61
lines changed- lldb
- source
- Core
- Plugins/Process/scripted
- Target
- test/API/functionalities/scripted_process
4 files changed
+239
-61
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1636 | 1636 | | |
1637 | 1637 | | |
1638 | 1638 | | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
1639 | 1647 | | |
1640 | 1648 | | |
1641 | 1649 | | |
| |||
1684 | 1692 | | |
1685 | 1693 | | |
1686 | 1694 | | |
1687 | | - | |
| 1695 | + | |
1688 | 1696 | | |
1689 | 1697 | | |
1690 | | - | |
| 1698 | + | |
| 1699 | + | |
1691 | 1700 | | |
1692 | 1701 | | |
1693 | 1702 | | |
| |||
1808 | 1817 | | |
1809 | 1818 | | |
1810 | 1819 | | |
1811 | | - | |
1812 | | - | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
1813 | 1824 | | |
1814 | | - | |
1815 | | - | |
1816 | | - | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
1817 | 1829 | | |
1818 | | - | |
1819 | | - | |
1820 | | - | |
1821 | | - | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
1822 | 1833 | | |
1823 | | - | |
1824 | | - | |
1825 | | - | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
1826 | 1838 | | |
1827 | | - | |
1828 | | - | |
1829 | | - | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
1830 | 1846 | | |
1831 | 1847 | | |
1832 | | - | |
1833 | | - | |
1834 | | - | |
1835 | | - | |
1836 | | - | |
1837 | | - | |
1838 | | - | |
1839 | | - | |
1840 | | - | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
1841 | 1860 | | |
1842 | 1861 | | |
1843 | 1862 | | |
1844 | | - | |
1845 | | - | |
1846 | | - | |
1847 | | - | |
1848 | | - | |
1849 | | - | |
1850 | | - | |
1851 | | - | |
1852 | | - | |
1853 | | - | |
1854 | | - | |
1855 | | - | |
1856 | | - | |
1857 | | - | |
1858 | | - | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
1859 | 1881 | | |
1860 | | - | |
1861 | | - | |
1862 | | - | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
1863 | 1891 | | |
1864 | 1892 | | |
1865 | | - | |
1866 | | - | |
1867 | | - | |
1868 | | - | |
1869 | | - | |
1870 | | - | |
1871 | | - | |
1872 | | - | |
1873 | | - | |
1874 | | - | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
1875 | 1905 | | |
1876 | 1906 | | |
1877 | 1907 | | |
| |||
1898 | 1928 | | |
1899 | 1929 | | |
1900 | 1930 | | |
1901 | | - | |
1902 | | - | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
1903 | 1934 | | |
1904 | | - | |
1905 | | - | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
1906 | 1938 | | |
1907 | | - | |
| 1939 | + | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
| 1950 | + | |
1908 | 1951 | | |
1909 | 1952 | | |
1910 | 1953 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| 20 | + | |
17 | 21 | | |
| 22 | + | |
18 | 23 | | |
19 | 24 | | |
20 | 25 | | |
| |||
102 | 107 | | |
103 | 108 | | |
104 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
105 | 208 | | |
106 | 209 | | |
107 | 210 | | |
| |||
162 | 265 | | |
163 | 266 | | |
164 | 267 | | |
165 | | - | |
| 268 | + | |
166 | 269 | | |
167 | 270 | | |
168 | 271 | | |
| |||
171 | 274 | | |
172 | 275 | | |
173 | 276 | | |
174 | | - | |
| 277 | + | |
175 | 278 | | |
176 | 279 | | |
177 | 280 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
331 | 331 | | |
332 | 332 | | |
333 | 333 | | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
334 | 341 | | |
335 | 342 | | |
336 | 343 | | |
| |||
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
11 | 20 | | |
12 | 21 | | |
13 | 22 | | |
| |||
88 | 97 | | |
89 | 98 | | |
90 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
91 | 116 | | |
92 | 117 | | |
93 | 118 | | |
| |||
0 commit comments