2011-12-07 49 views
5

Tengo una función que devuelve un puntero:Establecer un punto de interrupción en GDB

vacío estático * find_fit (size_t asize);

me gustaría establecer un punto de interrupción en el BGF, pero cuando escribo este nombre de la función, conseguir uno de estos errores:

ruptura * find_fit Función "* find_fit" no define

o

ruptura find_fit función "find_fit" no define

puedo configurar fácilmente punto de ruptura en una función que devuelve algo distinto de un puntero, pero cuando la función no devuelve un puntero, el BGF no parece querer romper el eso.

¿Alguien ve lo que está pasando? ¡Gracias!

+0

¿Qué idioma? ¿DO? C++? – smparkes

+0

Lo siento. C++ kkkkkkkkkkkkkk – Alex

Respuesta

4

Parece que por alguna razón, gdb no maneja correctamente el nombre de C++. Normalmente no tienes que tocar nada para que esto funcione. Puedes probar show language. Por lo general, está configurado en auto. También puede intentar configurarlo manualmente con set language c++.

Para probar, que puede simplemente escribir

b 'find<tab> 

(ese es el carácter de tabulación, no los caracteres "<tab>") y se debe tratar de autocompletar el nombre de la función para usted. En C++ necesitas los tipos de argumento para conocer la función, pero eso no encaja al 100% con lo que estás viendo porque si le das a gdb un nombre de función sin argumentos, generalmente hará lo correcto o te pedirá que versión de una función que desee. Usted no está viendo ninguno de esos.

Cuestiones relacionadas