diff --git a/src/helper/command.c b/src/helper/command.c
index 552031df063d1614e53e143bb910ac18f57388a3..65e538bbdcf8e60d650c54273d779b48eb8dc5a9 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -323,6 +323,22 @@ static struct command *command_new(struct command_context *cmd_ctx,
 {
 	assert(cr->name);
 
+	/*
+	   If it is a non-jim command with no .usage specified,
+	   log an error.
+
+	   strlen(.usage) == 0 means that the command takes no
+	   arguments.
+	*/
+	if ((cr->jim_handler == NULL) &&
+	    (cr->usage == NULL)) {
+		LOG_DEBUG("BUG: command '%s%s%s' does not have the "
+			"'.usage' field filled out",
+			parent && parent->name ? parent->name : "",
+			parent && parent->name ? " " : "",
+			cr->name);
+	}
+
 	struct command *c = calloc(1, sizeof(struct command));
 	if (NULL == c)
 		return NULL;
diff --git a/src/openocd.c b/src/openocd.c
index 3f0e14289f047d3a75e309ff5d083e5ccce999f4..60cbf232a61d1c8e68f006a2d5c3dc2606791149 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -195,6 +195,7 @@ static const struct command_registration openocd_command_handlers[] = {
 		.handler = &handle_noinit_command,
 		.mode = COMMAND_CONFIG,
 		.help = "Prevent 'init' from being called at startup.",
+		.usage = ""
 	},
 	{
 		.name = "init",
@@ -204,14 +205,14 @@ static const struct command_registration openocd_command_handlers[] = {
 			"Changes command mode from CONFIG to EXEC.  "
 			"Unless 'noinit' is called, this command is "
 			"called automatically at the end of startup.",
-
+		.usage = ""
 	},
 	{
 		.name = "add_script_search_dir",
 		.handler = &handle_add_script_search_dir_command,
 		.mode = COMMAND_ANY,
 		.help = "dir to search for config files and scripts",
-
+		.usage = "<directory>"
 	},
 	COMMAND_REGISTRATION_DONE
 };
diff --git a/src/target/target.c b/src/target/target.c
index 6b034665c757540c799706bcc6e1d53d4a441694..7763685db7548e9e4c5c3507d767e33bd6e4db09 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -5534,11 +5534,13 @@ static const struct command_registration target_exec_command_handlers[] = {
 		.mode = COMMAND_EXEC,
 		.help = "loads active fast load image to current target "
 			"- mainly for profiling purposes",
+		.usage = "",
 	},
 	{
 		.name = "profile",
 		.handler = handle_profile_command,
 		.mode = COMMAND_EXEC,
+		.usage = "seconds filename",
 		.help = "profiling samples the CPU PC",
 	},
 	/** @todo don't register virt2phys() unless target supports it */
@@ -5599,6 +5601,7 @@ static const struct command_registration target_exec_command_handlers[] = {
 		.name = "soft_reset_halt",
 		.handler = handle_soft_reset_halt_command,
 		.mode = COMMAND_EXEC,
+		.usage = "",
 		.help = "halt the target and do a soft reset",
 	},
 	{
@@ -5655,7 +5658,7 @@ static const struct command_registration target_exec_command_handlers[] = {
 		.handler = handle_bp_command,
 		.mode = COMMAND_EXEC,
 		.help = "list or set hardware or software breakpoint",
-		.usage = "usage: bp <address> [<asid>]<length> ['hw'|'hw_ctx']",
+		.usage = "<address> [<asid>]<length> ['hw'|'hw_ctx']",
 	},
 	{
 		.name = "rbp",
diff --git a/src/target/trace.c b/src/target/trace.c
index a8ec143ef0b67ca9c83a9ec3a88c386087369dcb..7604db8b49908bd80a9e7365247035d3d323d3f4 100644
--- a/src/target/trace.c
+++ b/src/target/trace.c
@@ -179,6 +179,7 @@ static const struct command_registration trace_command_handlers[] = {
 		.name = "trace",
 		.mode = COMMAND_EXEC,
 		.help = "trace command group",
+		.usage = "",
 		.chain = trace_exec_command_handlers,
 	},
 	COMMAND_REGISTRATION_DONE
diff --git a/src/transport/transport.c b/src/transport/transport.c
index b5e4b9003c3ac378af62e6e93aa27a8bbcd7f1a3..3e6722111369d767f9ceb2e32f210c93990acf24 100644
--- a/src/transport/transport.c
+++ b/src/transport/transport.c
@@ -336,12 +336,14 @@ static const struct command_registration transport_commands[] = {
 		 */
 		.mode = COMMAND_ANY,
 		.help = "Initialize this session's transport",
+		.usage = ""
 	},
 	{
 		.name = "list",
 		.handler = handle_transport_list,
 		.mode = COMMAND_ANY,
 		.help = "list all built-in transports",
+		.usage = ""
 	},
 	{
 		.name = "select",
@@ -359,6 +361,7 @@ static const struct command_registration transport_group[] = {
 		.mode = COMMAND_ANY,
 		.help = "Transport command group",
 		.chain = transport_commands,
+		.usage = ""
 	},
 	COMMAND_REGISTRATION_DONE
 };