Nominally, Canal finds references to symbols matching a specific set of patterns within a core file or process, and produces a histogram showing the frequency of occurrances of references to each mached symbol. By default, it will find references to vtables (by matching the pattern '_ZTV*', which starts the mangled name of a vtable), but you can use your own pattern to find references to similar type-describing objects. In the default operating mode, it gives a pretty accurate estimate of the number each type of polymorphic C++ object allocated in the process. You may also use canal to find references to specific addresses, or references that lie within a specific range of addresses. This whole thing should be a python extension module to allow much finer control over its operation. usage: canal [options] [executable] options: [-V|--show-syms] show symbols matching search pattern [-s|--show-addrs] show adddress of references found in core [-v|--verbose] increase verbosity (may be repeated) [-h|--help] show this message [-o|--offset ] limit search to matches that are exactly from the symbol [-p|--pattern ] add to the list of patterns to be matched for symbols [-f|--start-location ] instead of searching for symbols, find references to a specified address. Decimal, or prefix with 0x for hex [-e|--end-location ] change previous 'f' option to include all addresses in range ['f' addr, 'e' addr) [-w|--wordsize ] consider address ranges as wordsize-bit values [-D|--debuginfod] use debuginfod to find ELF images [-S|--string ] search the core for the text string , and print it's address