Mercurial > projects > ddbg_continued
diff src/cli/userinterface.d @ 5:496dfd8f7342 default tip
added:
-repeat option for "in", "ov"
-run until a line option
-run until a function option
-break on a function start
-n is an alias for ov
author | marton@basel.hu |
---|---|
date | Sun, 17 Apr 2011 11:05:31 +0200 |
parents | 4a9dcbd9e54f |
children |
line wrap: on
line diff
--- a/src/cli/userinterface.d Sun Apr 10 12:15:04 2011 +0200 +++ b/src/cli/userinterface.d Sun Apr 17 11:05:31 2011 +0200 @@ -238,8 +238,49 @@ return true; } + /********************************************************************************************** + prints information about symbol (not recursive) + **********************************************************************************************/ + + void printSymbol( NamedSymbol ns, uint indent=0) + { + + { + + + char[] indent_str; + indent_str.length = indent*2; + indent_str[0..indent*2] = ' '; + ClassInfo cs = ns.classinfo; + if ( cs == ProcedureSymbol.classinfo ) + { + ProcedureSymbol ps = cast(ProcedureSymbol)ns; + + DbgIO.println("%s%s %d arguments", + indent_str, ps.name_type, ps.arguments.symbols.length + ); + } + else if ( cs == StackSymbol.classinfo ) { + StackSymbol ss = cast(StackSymbol)ns; + DbgIO.println("%s%s stack (%s) %x ebp%s%d", indent_str, ns.name_type, ns.mangled_name, ss.cvtype, ss.offset>=0?"+":"", ss.offset); + } + else if ( cs == DataSymbol.classinfo ) + { + DataSymbol ds = cast(DataSymbol)ns; + DbgIO.println("%s%s (%s) data offset: 0x%x size: 0x%x segment: 0x%x type: 0x%x (%s)", indent_str, ds.name_type, ds.name_notype, + ds.offset, ds.size, ds.cvdata.segment, ds.cvdata.type, dbg.images.mangleCVtype(ds.cvdata.type) + ); + } + else + DbgIO.println("%s%s %s", indent_str, ns.name_type, cs.name); + ScopeSymbol scs = cast(ScopeSymbol)ns; + //if ( scs !is null ) + // printSymbols(cv, scs.symbols.named_symbols, indent+1); + } + } + /********************************************************************************************** - + prints symbols that contain substring with indentation indent **********************************************************************************************/ void printSymbols(CodeView cv, NamedSymbol[] syms, string substring=null, uint indent=0) {