unit libcheck check c unit-testing debugging gdb check-framework

unit - libcheck



Prueba de unidad de depuraciĆ³n en C usando cheque (3)

En realidad, PUEDE usar el modo horquilla también.

gdb tiene dos opciones interesantes relacionadas con el comportamiento de la horquilla:
- detach-on-fork (configurar esto en falso)
- follow-on-fork (ya sea padre o hijo, siempre llevo niño)

Esto hará que gdb siga el proceso secundario. Cuando el proceso hijo ha finalizado, debe volver al proceso principal manualmente utilizando el comando inferior .

Estoy tratando de usar el marco de prueba de verificación de unidad para mi aplicación C. Pero no puedo usar el depurador (gdb) debido a dos puntos:

  • primero, verifique el uso de algunas macros complejas ( START_TEST y END_TEST ) y el depurador tiene problemas para poner un punto de interrupción en mi código entre estas dos macros (de hecho, puedo poner un punto de corte de software pero nunca lo veo por gdb)

  • segundo, verificar definir algún tipo de excepciones redefiniendo el comportamiento de la interrupción. Por lo tanto, cuando trato de poner un punto de interrupción de hardware, la prueba falla y salgo porque considero el punto de corte de hardware como una falla de mi prueba.

¿Alguien ya ha encontrado este problema y tiene una solución?


Pruebe TAP (Test Anything Protocol) ... es mucho más fácil de implementar, enviar y depurar. También es muy fácil hacer que valgrind -aware y tienda a jugar mejor con gdb .


Mira el modo sin tenedor :

Compruebe normalmente las horquillas para crear un espacio de direcciones separado. Esto permite capturar e informar una señal o salida anticipada, en lugar de anular todo el programa de prueba, y normalmente es muy útil. Sin embargo, cuando intenta depurar por qué se produjo la falla de segmentación u otro error del programa, la bifurcación dificulta el uso de las herramientas de depuración.