Hello, I recently got really frustrated that I couldn't set thread-specific breakpoints when using the "*" linespec location. The reason for this has been discussed already, but I can't seem to find the thread in the archives. Basically, the "*" notation treats as an expression and the expression parser emits a parse error if you add 'thread xxx' to the line. This works for breakpoint conditions because "if" is special-cased in the expression parsers to stop the parsing. At least for C(++), there can't be any expression typed in GDB that would contain the "if" reserved keyword, so handling it as a stop condition in the expression parser is OK. That can't be done for "thread" because it's a valid language identifier. The attached patch doesn't try to solve the parsing issue, but it simply adds a 'threadnum' command that one can use to (un)set the thread of a particular breakpoint. I'm not sure about the command name, because it will conflict with the thread command. Suggestions appreciated. I also wonder if new CLI commands should be added only in the 'cli' subdir? Of course, the patch is missing a doco part and maybe testsuite coverage, but I thought I'd first ask if there's interest for this or if I missed an existing way to do it (seems quite surprising that this doesn't already exist). Maybe the alternate approach of adding a $thread variable to use in bp conditions ( http://www.sourceware.org/ml/gdb/2006-02/msg00017.html ) should be implemented instead ? Fred.