This IDAPython script/plugin will parse the PDB for the loaded executable and annotate the disassembly with source and line number information.
-
Option 1) Run annotate_lineinfo.py as a regular IDAPython script.
-
Option 2) From another script or the IDAPython console:
import annotate_lineinfo
annotate_lineinfo.ida_annotate_lineinfo()To install
- Option 1) Run
python setup.py install --install-ida-plugin=PATHto install annotate_lineinfo_plugin.py toPATH\plugins- If
PATHis not specified,%IDAUSR%will be tried first - If
%IDAUSR%does not exist, it defaults to%APPDATA%\Hex-Rays\IDA Pro
- If
- Option 2) Manually place annotate_lineinfo_plugin.py in the
pluginsdirectory of your IDA installation.
Annotate entire file
- Use shortcut key
Alt-Shift-Aor run fromEdit->Annotate lineinfomenu.
Disassembly view popup menu
- Right click inside a function, select annotate
- Select a range of instructions, right click, select annotate
Functions view popup menu
- Select one or more functions, right click, select annotate
Each of the above actions has a corresponding remove annotations action.
On load, annotate_lineinfo attempts to locate the PDB in the following locations:
_NT_SYMBOL_PATHif set- IDA's default PDB download directory
%TEMP%\ida - MSDIA defaults - Path in debug directory of executable, same path as executable
You may specify the PDB path manually, or request another auto-locate attempt (e.g. after IDA downloads the PDB),
from the Edit->Annotate lineinfo menu.
Only runs on Windows. This script makes use of the COM API provided by msdia[ver].dll to parse the PDB.
