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=PATH
to install annotate_lineinfo_plugin.py toPATH\plugins
- If
PATH
is 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
plugins
directory of your IDA installation.
Annotate entire file
- Use shortcut key
Alt-Shift-A
or run fromEdit->Annotate lineinfo
menu.
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_PATH
if 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.