Iniciar Sesión

Ver la Versión Completa : [Duda] Debugger en Visual Cobol


frutiyos
22 de abril de 2022, 14:07
Hola, muy buenas,

En primer lugar, saludos a todos y gracias por recibirme en el foro. Aunque ya me presenté, no está de más volver a hacerlo.

En segundo lugar, me gustaría abrir mi primer post, preguntando acerca de algo, que seguro a muchos os ha surgido a lo largo de vuestra carrera con cobol en Visual Studio (yo acabo de empezar, ya que siempre he trabajado con z/os) y es encontrar una herramienta de debug que sea legible y que pueda usar con el framework.

En este sentido, he estado indagando sobre aquellos plugins que contiene la herramienta ,a este respecto y se que hay varios pero no me queda muy claro como usarlo ni he encontrado algo más "guía burro" en internet a este respecto.

Por lo tanto, ¿sabríais echarme una mano con esto o remitirme algún otro hilo donde ya se hablase de este tema (también lo busqué antes de postear) ?

Gracias por la ayuda y cualquier duda al repecto, la debatimos.

Saludos

Kuk
24 de abril de 2022, 11:33
@frutiyos, hay varias maneras de hacer Debug en Visual Cobol. Todo depende de la arquitectura de tu aplicación.

Creo que deberías indicarnos con más precisión qué aspectos te interesan o no te quedan claros para que podamos ayudarte mejor. ;)

frutiyos
25 de abril de 2022, 09:09
Hola Kuk, buenos días y gracias por la respuesta.

La arquitectura sobre la que estoy trabajando es AIX (Unix).

Se que podría utilizar debuggers como el Cobol debugger o Rech Cobol Debugger, pero el problema que me surge en ambos, es la configuración que tienen asociada y de ahí mi pregunta inicial.

Si es necesario que os indique algún detalle indicadme y lo comentamos.

Saludos y muchas gracias!

Kuk
26 de abril de 2022, 13:41
@frutiyos, en este caso no es muy simple. Tienes que:

Compilar el programa sobre AIX
Crear un script que contenga la declaración de las variables para el cobdebugremote y su lanzamiento con un Nº de puerto a elegir sobre AIX (ver más abajo)
Elegir la opción "Cobol wait for application attachment" en el IDE
Indicarle el nombre le la máquina AIX (o la IP), el puerto del debugger usado por el cobdebugremote AIX y el usuario con el que se ha lanzado el debugger sobre AIX (en Debug Session Identifier). En la pestaña Source añades el proyecto que contiene los fuentes correspondientes al binario compilado sobre AIX


Y luego lanzar el DEBUG en el IDE.

El script de AIX sería algo así:


#!/bin/bash

. /opt/microfocus/visualcobol/bin/cobsetenv '/opt/microfocus/visualcobol/'

export COBANIMSRV=$USER
export COBPATH=/ruta_de_los_*.INT/*.GNT/*.SO_generados_con_la_compilacion_en_AIX
export COBIDY=/ruta_de_los_*.IDY_generados_con_la_compilacion_en_ AIX

PORT=12345

cobdebugremote port=$PORT



Creo que no se me escapa nada, pruébalo a ver y nos cuentas ;)

frutiyos
27 de abril de 2022, 08:38
Hola Kuk, buenos días y gracias por la respuesta.

Si que parece complejo, la verdad. Voy a echarle un ojo más tranquilamente los próximos días y cualquier duda os comento. Porque dentro de esto, ¿no existe otra posibilidad?

Saludos.

Kuk
27 de abril de 2022, 14:17
Hola Kuk, buenos días y gracias por la respuesta.

Si que parece complejo, la verdad. Voy a echarle un ojo más tranquilamente los próximos días y cualquier duda os comento. Porque dentro de esto, ¿no existe otra posibilidad?

Saludos.

Si quieres utilizar el IDE con el Debugger, que yo haya visto funcionando sólo es la que te he dicho.

Lo mismo existe otra pero no la he probado.

También depende de la arquitectura de la aplicación. Una cosa es sólo lanzar el debug de cualquier manera, otra cosa es que funcione en una aplicación grande tipo bancaria que tiene muchas capas por medio, motores transaccionales, usuarios técnicos etc.

frutiyos
4 de mayo de 2022, 11:53
Hola, buenos días,

Kuk, muchas gracias de nuevo y perdón por tardar tanto en contestar.

Estuve revisando la configuración de la máquina que tenemos y vi que no es microfocus. De hecho, busqué microfocus por varios directorios y no encontré nada que me hiciera pensar que trabajamos bajo esta arquitectura.
Al final opté por la solución que tienen implementada. Escribir displays en aquellos puntos a verificar, compilar, probar and again and again.

Reitero las gracias en la respuesta. Seguiré revisando a ver si lo consigo, porque jugar con displays no es lo mas óptimo, pero de momento es lo que he conseguido.

Saludos!

Kuk
5 de mayo de 2022, 15:48
@frutiyos, de nada hombre para eso estamos. ;)

Lo que sí que es interesante es qué compilador tenéis, si nos puedes contar algo

frutiyos
9 de mayo de 2022, 17:32
Muy buenas Kuk,

El compilador que tenemos es un script python. No es una herramienta aparte del visual studio o un componente extra como los del z/os, que te permita llevar a cabo esta acción.

En este sentido, toma los fuentes de un determinado directorio y los compila, generando una salida lst con su salida y un .exe si esta ha sido correcta.

Si lo necesitas te puedo indicar algo más, pero por privacidad, me quedo en este punto. ¿Algo que puedas indicarnos con esto?

Saludos y muchas gracias!

Kuk
10 de mayo de 2022, 00:24
@frutiyos, un script en Python.... yo creo que debe ser el que controla lo que pasa, copia cosas y lanza el compilador. Podría ser una posibilidad muy remota de que sea un script que traduce el código Cobol a otro lenguaje, pero me extrañaría muchísimo, creo que la primera opción es la correcta. Y siendo así, en este script debe haber una llamada al compilador de Cobol, no es el script el que genera el ejecutable.
Pero mientras que no sepamos cual es el compilador, si es de IBM, Micro Focus u otro, poco podríamos decir si se puede configurar un entorno de Debug.

frutiyos
10 de mayo de 2022, 09:53
Hola kuk, buenos días,

La estructura de la maquina es de IBM.

En el script de python que comento, se cogen los programas a compilar de una determinada ruta.
En esta se busca su ubicación y nombre completo (ejemplo: /directorio1/dir2/dir3/fuente.sqb) y si existe, se detallan en pantalla las opciones de compilación.
Estas opciones de compilación se establecen a pincho en una variable, dependiendo del tipo de programa o rutina que estemos tratando. Tras esto se invoca a un subproceso a través de subprocess.call(), donde se le pasa las opciones asignadas anteriormente y el parámetro shell a true. Es decir, la llamada se establece de la siguiente manera

subprocess.call(variable_con_opciones_a_compilar, shell=True)

Tras esto se controla el retorno de este subproceso y se avisa al usuario del resultado de la compilación.

Sigo investigando para entender como lo tenemos montado, pero con esto que comento, no veo una ruta específica, donde nos dirijamos a compilar y te pueda detallar (a no ser que esta llamada al subproceso sea quien lo gestione y para mi como usuario sea transparente).

En cuanto pueda actualizo el hilo, pero de momento hasta ahí puedo leer.

Muchas gracias!

Kuk
10 de mayo de 2022, 15:46
@frutiyos, busca en /opt a ver si hay algo como microfocus, o en /opt/ibm.

Mira haz esto a ver qué te da como respuesta:

ls -ld /opt/*/* | grep -i cobol

frutiyos
10 de mayo de 2022, 16:16
Buenas Kuk,

Con ese comando como tal no encuentro nada.

Cambiándolo para hacerlo un poco mas amplio, me he topado con las carpetas /RPM_inst_root y /tivoli a las cuales no tengo acceso.

No se si eso te dice algo

Saludos y gracias!

Kuk
10 de mayo de 2022, 17:50
Buenas Kuk,

Con ese comando como tal no encuentro nada.

Cambiándolo para hacerlo un poco mas amplio, me he topado con las carpetas /RPM_inst_root y /tivoli a las cuales no tengo acceso.

No se si eso te dice algo

Saludos y gracias!

RPM_inst_root tiene pinta de ser una carpeta temporal usada para paquetes RPM. tivoli es el TWS (el Schduler de Jobs).

Pues no sé, lo mismo la compilación se hace en otra máquina, me extrañaría pero, así sin tener acceso a la máquina ni nada, se me han agotado las ideas.

Lo mismo es mejor ir a preguntar a los de sistemas, qué compilador Cobol tenéis en utilización.

frutiyos
22 de mayo de 2022, 20:00
Hola Kuk, muy buenas,

Disculpa que lleve tiempo sin postear.

Como comentaba hace unos posts, las pruebas y debugs, lo voy haciendo directamente con displays. Se que no es lo menos productivo, pero no he podido avanzar mas en ese sentido.

Asi que nada, no he conseguido mas información al respecto y de momento lo haré de esta manera.

Gracias por tu seguimiento y tened en cuenta que si me entero de algo os comento.

Saludos!!!

---------- Post añadido el 26 de mayo de 2022 a las 10:47 ----------

Hola Kuk,

He estado siguiendo este tema en el tiempo que he podido y se que antes usaban una herramienta llamada idebug - debugger for AIX.

Según he leído en internet, es la aplicación de debug para plataformas AIX, que es una aplicación cliente/servidor y es necesario instalarlo en el equipo (este paso ya lo hice).

El problema es que me gustaría encontrar alguna documentación mas a bajo nivel y tipo guía burro, de como se monta, se mete el software para hacerle debug, etc y es lo que no acabo de encontrar. Alguna idea sobre esto?

Gracias!

---------- Post añadido el 27 de mayo de 2022 a las 07:02 ----------

Hola, buenos días,

Ayer encontré esta web de IBM, Using the debugger - Part 1 - IBM MediaCenter (https://mediacenter.ibm.com/media/Using+the+debugger+-+Part+1/0_3mtzu30d), con algo más de información. El problema ahora es la conexión a la máquina AIX donde está el software, no se como llegar a ella desde el eclipse.

Saludos