I searched the topic , but I find no useful info.
I create a very simple application and a dll .  I attach the source code.
the caller is 
int main()
{
    char FileName[1024];
    SomeFunction("Hello");  // cb can step into this function in dll
    GetFileName(NULL , FileName , "title");  //when this functions called
    SomeFunction("Hello");  // cb cannot step into .
    cout << "Hello world!" << endl;
    return 0;
}
I think GetFileName changes the directory , and then cb(gdb) can not step in the Next function(in dll).
I use CB 12.11 with gcc ( 4.7.1 ) , just downloaded from official site.