Added a top level Timer to the interpreter execute command. Also added an option to pass the depth to "log timer enable". That allows you to time just command execution with:
log timer enable 1
<command>
log timer dump
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118266 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Commands/CommandObjectLog.cpp b/source/Commands/CommandObjectLog.cpp
index e065518..2060b1e 100644
--- a/source/Commands/CommandObjectLog.cpp
+++ b/source/Commands/CommandObjectLog.cpp
@@ -413,7 +413,7 @@
CommandObject (interpreter,
"log timers",
"Enable, disable, dump, and reset LLDB internal performance timers.",
- "log timers < enable | disable | dump | reset >")
+ "log timers < enable <depth> | disable | dump | reset >")
{
}
@@ -456,6 +456,24 @@
}
}
+ else if (argc == 2)
+ {
+ const char *sub_command = args.GetArgumentAtIndex(0);
+
+ if (strcasecmp(sub_command, "enable") == 0)
+ {
+ bool success;
+ uint32_t depth = Args::StringToUInt32(args.GetArgumentAtIndex(1), 0, 0, &success);
+ if (success)
+ {
+ Timer::SetDisplayDepth (depth);
+ result.SetStatus(eReturnStatusSuccessFinishNoResult);
+ }
+ else
+ result.AppendError("Could not convert enable depth to an unsigned integer.");
+ }
+ }
+
if (!result.Succeeded())
{
result.AppendError("Missing subcommand");