This is rather a change request than a bug report. Dark GDK functions that return char pointers create new strings every time they are called and to avoid a memory leak, the returned string must be deleted after use. This comes up again and again on the forum because people don't know it and it is not in the documentation. It would be best to change the functions so that they expect a char buffer from the calling function. For example, instead of this:
the function would be declared like this:
int dbStr (char* Buffer, int MaxChars, int iValue)
and it would be called like this:
char Buffer[256];
dbStr(Buffer, sizeof(Buffer), dbScreenFPS());
The function could then return an error code if the resulting string was longer than the supplied buffer.
If this change will not be done (I understand it's much work), then please include a warning into the Dark GDK documentation for all such functions, so that new users will know how to use them correctly, without creating memory leaks. When I first learned about this, it surprised me that such an important information is not in the help.