Почему бы не переопределить assert, чтобы делать то, что вы хотите, если он не скомпилирован для отладки?
Другой вариант - создать собственную функцию assert, в которой вы можете добавить точку останова при загрузке в GDB.
Прототип Assert -
void assert (int expression);
void assert(int expression)
{
if( !expression )
{
// enable break point here
// log to server
}
}
или добавьте точку останова в журнал для кода сервера.