Hi All, This patch improves the error message of tvariable command. The difference in error messages in various cases is shown below. This patch was originally written by Pedro. I have updated it to latest code and regtested. Is it ok? Regards, Abid Before the patch: (gdb) start Temporary breakpoint 1 at 0x80483ba: file test.c, line 3. Starting program: /home/abidh/test Temporary breakpoint 1, main () at test.c:3 3 int x = 1; (gdb) list 1 int main() 2 { 3 int x = 1; 4 return 0; 5 } (gdb) tvar x Syntax must be $NAME [ = EXPR ] (gdb) tvar y No symbol "y" in current context. (gdb) tvar $ Syntax must be $NAME [ = EXPR ] (gdb) tvar $1234 Syntax must be $NAME [ = EXPR ] After the patch: (gdb) start Temporary breakpoint 1 at 0x80483ba: file test.c, line 3. Starting program: /home/abidh/test Temporary breakpoint 1, main () at test.c:3 3 int x = 1; (gdb) list 1 int main() 2 { 3 int x = 1; 4 return 0; 5 } (gdb) tvar x Name of trace variable should start with '$' (gdb) tvar y Name of trace variable should start with '$' (gdb) tvar $ Must supply a non-empty variable name (gdb) tvar $1234 $1234 is not a valid trace state variable name (gdb) tvar $asdf=1=1 Left operand of assignment is not an lvalue. 2013-02-12 Pedro Alves Hafiz Abid Qadeer gdb/ * tracepoint.h (validate_trace_state_variable_name): Declare. * tracepoint.c (validate_trace_state_variable_name): New. (trace_variable_command): Parse the trace state variable's name without using parse_expression. Do several validations. * mi/mi-main.c (mi_cmd_trace_define_variable): Don't parse the trace state variable's name with parse_expression. Validate it. gdb/testsuite/ * gdb.trace/tsv.exp: Adjust tests, and add a few more.