Estoy depurando un problema, y quiero interrumpir cada llamada de método que tiene un objeto específico como el parámetro 'this'. ¿Es esto posible en GDB?Descanso de GDB en la llamada a la función de objeto
Respuesta
Este parámetro solo debe ser el método que se incluye en la clase. Entonces solo deberías establecer puntos de interrupción para todos los métodos de la clase que estás viendo. Sin embargo, no estoy seguro de que haya una manera simple de hacerlo.
Supuse que OP tenía un método específico en mente. Pero sospecho que tu interpretación es más correcta. ¿Cómo establecerías un punto de interrupción para un solo método? – Omnifarious
Es fácil. Puede usar un comando como b A::a if (this==0x28ff1e)
.
¿Es posible especificar un comodín en lugar de 'A :: a' que coincida con los nombres de todos los métodos en la clase' A'? – Omnifarious
No conozco ninguna forma de usar comodines en gdb, tal vez necesite un programa para generar comandos para establecer descansos. – user685684
@NathanielFlath - Sabes que me pregunto si el comando gdb 'rbreak' podría no hacer lo que quieras ... – Omnifarious
Quiero romper en cada llamada al método que tiene un objeto específico como el 'este' parámetro
Esto significa que usted quiere romper en cada función miembro de una clase particular para el cual el objeto ha sido instanciado.
Digamos que por conveniencia de que todas las funciones miembro se definen en un archivo CPP en particular, como myclass_implementation.cpp
Puede usar GDB para aplicar punto de interrupción en cada función dentro myclass_implementation.cpp
esta manera:
rbreak myclass_implementation.cpp:.
Let de supongamos que desea romper algunas funciones específicas, como las funciones get que comienzan con Get, luego puede usar gdb para aplicar puntos de interrupción de esta manera:
rbreak myclass_implementation.cpp:Get*
- 1. Llamada a error de malloc en la sesión de gdb
- 2. puntero después de la llamada a la función
- 3. gdb: métodos de acceso de llamada en la subclase NSManagedObject?
- 4. Llamada a la función anulada de la función de anulación
- 5. ¿Cómo maneja R el objeto en la llamada de función?
- 6. GDB Descanso si el marco está en traza inversa
- 7. Automatizar gdb: mostrar traza inversa en cada llamada a la función pone
- 8. Cómo activarse la función de llamada en php para cada otra llamada a la función
- 9. llamada a la función jQuery de JavaScript
- 10. ¿Función de llamada de un objeto?
- 11. ¿Cómo pasar el objeto interconectado a la llamada a la función Pascal Script?
- 12. llamada a un bind_param función miembro() en un no-objeto
- 13. Sobrecarga de la llamada a la función DLL
- 14. Llamada a la función indefinida curl_init().?
- 15. Llamada a la función c desde Java
- 16. llamada de función en la cláusula WHERE
- 17. llamada ambigua a la función estática sobrecargada
- 18. Llamada a la función no definida apache_request_headers()
- 19. Javascript llamada a la función anónima
- 20. JNI llamada a la función de Java devolver un resultado objeto en NoSuchMethodError
- 21. "usado como valor" en la llamada a la función
- 22. Llamada a la función no definida sqlite_open
- 23. obtienen llamadas nombre de la función de la función llamada
- 24. Funciones de llamada desde la función dentro de un objeto (literal del objeto)
- 25. objeto en función de miembro de devolución de llamada
- 26. Llamada ambigua a la función de plantilla debido a ADL
- 27. Llamada al sistema vs Llamada a la función
- 28. gdb interpretar la dirección de memoria como un objeto
- 29. Función de devolución de llamada en freeglut desde el objeto
- 30. Agregue parámetros adicionales a la función de devolución de llamada
¿Te refieres a una dirección específica? No puede obtener el tipo de objeto desde este puntero. – Pubby
Tendría que usar un punto de interrupción condicional. Esos existen, pero no tengo idea de cómo configurarlos. gdb es en gran medida un misterio para mí, y los diversos guis a su alrededor hacen más por oscurecer que hacerlo accesible. – Omnifarious
Me refiero a una dirección específica: tengo un objeto que se está quedando, y quiero saber cómo se llama. –