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)
 	{