21-May-2009: Generic tracer

gt is very simple win32 tracer, in some way similar to strace *NIX tool.

One reason I blog about it here because it supports Oracle RDBMS .SYM symbol files.

Readme file is here and download it here.

Few examples:

Memory allocations and deallocations:

gt.exe -a:oracle.exe bpf=.*!_kghalf,args:6 bpf=.*!_kghfrf,args:4

Dump calling stack before each call:

gt.exe -a:oracle.exe -s bpf=.*!_kghalf,args:6 bpf=.*!_kghfrf,args:4

gt tool can easily supersede my old "Oracle SPY" utility ( http://blogs.conus.info/node/9 ):

For 11g:

gt.exe -a:oracle.exe bpf=oracle.exe!_rpisplu,args:8 bpf=oracle.exe!_kprbprs,args:7 bpf=oracle.exe!_opiprs,args:6 bpf=oraclient11.dll!_OCIStmtPrepare,args:6

For 10gR2:

gt.exe -a:oracle.exe bpf=oracle.exe!_rpisplu,args:7 bpf=oracle.exe!_kprbprs,args:7 bpf=oracle.exe!_opiprs,args:6 bpf=oraclient10.dll!_OCIStmtPrepare,args:6

gt can also supersede my old "Oracle SPY Events" uility ( http://blogs.conus.info/node/14 ).

Unfortunately, this works only for 10gR2:

gt.exe -a:oracle.exe bpf=oracle.exe!_ksdpec,args:1 bpf=oracle.exe!_ss_wrtf,args:3

Please note that all printed arguments are in hexadecimal form.

This open sourced site and this page in particular is hosted on GitHub. Patches, suggestions and comments are welcome.

→ [list of blog posts]

Please drop me email about any bug(s) and suggestion(s): dennis(@)yurichev.com.