#include #include /* This test case is intended to demonstrate how asterisks are treated as wildcards when appearing in the argument list for a procedure or function, and other problems with the parsing of text in the ddd parser line, which might be fine for little programs, but for large ones makes ddd/gdb difficult to use. Build with the command: g++ -g testCase.cpp -o testCase Run in the ddd with: ddd testCase & At the ddd command line: break 'function1(const char * a couple of results can occur: 1. a list of all known types appears. That's usesless and wrong since you have a complete type to the left of the position where tab is pressed. When you have a program with > 200K types, you might as well kill the ddd session and start again. 2. The types appear after the "*" with a "." and some type name: break 'function1(const char *._17' The "*" should be treated as a wildcard when escaped and shouldn't be treated as one if the type is complete to its left. If it falls at the end of a string, maybe, but that currently doesn't work. Note that break 'function1 break 'function1( break 'function1(char completes to break 'function1(char const*)' but break 'function1(char does not. Note the blank following "char". Note that break 'function1(const char * pStr doesn't complete (you get the bell sounding). When you do break function4(const char *, you get the list of all types again, not the list of possible completions for function4. */ void function1(const char * pStr) { // do something } void function2(const char * pStr) { // do something } void function3(const char * pStr) { // do something } void function4(const char * pStr) { // do something } void function4(const char * pStr, long aValue) { // do something else } void function4(const char * pStr, double aDouble) { // do yet another thing } long gGlobalValue1 = 0; long gGlobalValue2 = 0; long gGlobalValue3 = 0; long gGlobalValue4 = 0; int main(int argc, char * argv[]) { printf("This is a test\n"); return 0; }