Closed lucasciola1 closed 5 months ago
Buenas! Cómo va?
Si te fijas en los valores de las variables, la variable logger esta llegando en null (o 0x0 como lo muestra vscode)
Revisen con el debug que estan pasando bien el logger a todos los lados donde lo quieren usar.
Saludos.-
Buenas, aunque elimine la linea:
log_info(logger1,"SERVER: %s",msj) ;
Igualmente sigo recibiendo el mismo error, aunque en la funcion iniciar_servidor sin esa linea no se utilice un logger en ningun momento.
Me parecio raro que el error me dirija directamente a las commons.
Gracias
¡Buenas! El error aparece en esa línea ya que es la última función en la cual cuenta con una referencia de código. Eso es porque nosotros les recomendamos desde un inicio compilar e instalar las commons en modo debug.
Sin embargo, sepan que el código de las commons está exhaustivamente testeado (no solo por los unit tests sino también por varios años de cursada, por lo que difícilmente el bug se encuentre ahí.
Entonces, al igual que si uno encuentra un segmentation fault al llamar a printf()
probablemente se deba a algún problema con los parámetros, lo mismo aplica para las commons.
Como bien dice Dami, Valgrind es una excelente herramienta para detectar errores de manejo de memoria, ya que entre otras cosas te devuelve la pila de llamados a funciones desde la cual se origina el error.
En VSCode también pueden acceder a dicha pila abajo a la izquierda:
Desde ahí pueden clickear y saltar directamente a la función que llamó a log_info
, en este caso:
También lo hermoso de esto es que a la derecha pueden contar con el estado de las variables de esa función que llamó a log_info()
☺️
Saludos
PD: Otra cosa, viendo la primera captura de pantalla entiendo que estás llamando a log_trace()
en vez de log_info()
, ya que el log level que recibe es LOG_LEVEL_TRACE
.
Hola, un compañero ejecuto el mismo codigo en otra computadora y le funciona perfectamente. Probe varias cosas y ya no se que puede ser lo que genere esto. Gracias
Buenas! Cómo va?
Si otro compañero ejecutó el mismo código y le funcionó bien y el problema lo tenes al momento de loggear algo que por esas casualidades levantaste de un config... creo que tu problema es algo que tratamos en el doc de Rutas Relativas y Absolutas
Parece una gilada, pero esto de las rutas genera problemas incluso en empresas que mueven toneladas de guita por día, por las dudas revisa el doc y checkea lo que estas ejecutando a ver si no es el caso.
Saludos.-
¿Probaste revisando con el Debugger en qué línea se produce el error? Repito, viendo la captura entiendo que hay un llamado a log_trace()
pero en el código que pasaste no veo ninguno.
Ese creo que es el problema, nunca cree un loger con LOG_LEVEL_TRACE, el logger que se pasa como parametro a iniciar_servidor es uno en LOG_LEVEL_INFO, y al loggear utilizo la funcion log_info.
Pero como se ve en la primera captura y mencionaste, en el debugger figura como LOG_LEVEL_TRACE
Lo que figura en el apartado "Call Stack" del debugger es lo siguiente:
El archivo conexion_srv.c no existe, y nunca fue creado, no entiendo el porque figura eso.
Mmm... Eso significa que estás debuggeando código viejo. Raro porque supuestamente la configuración "debug.onTaskErrors": "abort"
que está en el workspace te debería frenar eso. ¿Cuál es el output de la consola al compilar? Copiá y pegá el texto como acá:
También la parte de "executing task: make all" y lo de abajo, por las dudas
El output al compilar el modulo es:
make: Nothing to be done for 'all'.
Hagamos algo... Andá a Terminal
> Run Task
, seleccioná la que dice clean
para memoria y lo mismo para utils, y por último volvé a compilar. Eso debería resolver el problema de llamar a una función "fantasma" ya que no debería existir en tu nuevo ejecutable.
Ahi lo pude solucionar con lo de clean. Muchisimas gracias!!
Me sale segmentation fault en la funcion _isEnableLeveInLogger del archivo de las commons log.c
Esto sale cuando corro el siguiente codigo:
Siendo la funcion iniciar_servidor la siguiente:
Vale aclarar que al correr el programa los dos logs de la funcion iniciar_configs se ejecutan bien.