#include "hungary.h" #include "bscapi.h" #include #include #include void DumpModules(); void DumpAllInstInfo(IINST); void DisplayInstName(IINST); void DumpOneModule(SZ); void DumpRefs(IINST iinst); void DumpDefs(IINST iinst); void DumpUses(IINST iinst); void DumpUbys(IINST iinst); void DumpBases(IINST iinst); void DumpDervs(IINST iinst); Bsc *pbsc; MBF mbf = mbfAll; void main(int argc, char **argv) { ULONG cInst; IINST *rgInst = NULL; int i; if (argc < 2) { printf("\nUsage: bd foo.bsc [options|symname]\n\n"); printf(" symname: any symbol name or sym*\n"); printf(" options: -ref -def -use -uby -base -derv -names -all\n"); printf(" options: -module modname\n"); printf(" options: -filter FMCVT*\n\n"); printf(" e.g. bd foo.bsc fred -filter F -use\n"); printf(" e.g. bd foo.bsc -filter C CWnd -filter FV -use\n"); printf(" e.g. bd foo.bsc C* -names\n"); exit(0); } if (!BSCOpen(argv[1], &pbsc)) { printf("couldn't open '%s'\n", argv[1]); exit(1); } if (argc == 2) { DumpModules(); exit(0); } for (i = 2; i < argc; i++) { SZ szOpt = argv[i]; if (szOpt[0] != '-') { if (rgInst) { BSCDisposeArray(pbsc, rgInst); rgInst = NULL; } if (!BSCGetOverloadArray(pbsc, szOpt, mbf, &rgInst, &cInst) || cInst == 0) { printf("no symbols matching '%s'\n", szOpt); } } if (!strcmp(szOpt, "-all")) { ULONG i; for (i=0; i