Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   JAVA (https://www.clubdelphi.com/foros/forumdisplay.php?f=16)
-   -   Sesion de debug no me responde adecuadamente (https://www.clubdelphi.com/foros/showthread.php?t=53119)

oracle 11-02-2008 17:51:03

Sesion de debug no me responde adecuadamente
 
Hola inestimables amigos, colegas todos:


Les ha ocurrido en alguna ocacion que su app no haga lo que debe hacer cuando la estan ejecutando, y cuando la ejecutan en modo debug si lo hace??? Pues a mi me esta ocurriendo y ya estoy a punto de darme por vencido, en estos momentos dificiles solo se me ocurre la sabiduria de uds...

El segmento del programa donde me esta ocurriendo es este:

Código:

MarcoMolecula = new Marco(viewer2,"temp");
                          MarcoMolecula.getMarco().openFile("temp.mol");
                         
                          Opcion2.setSelectionHalos(true);
                        MarcoMolecula.getMarco().evalStringQuiet("set selectionhalos " + true);
                         
                          //Opcion2.setSelection("none");  //por defecto ya la trae asi
                        MarcoMolecula.getMarco().evalString("select none");
                         
                       
                        ArrayList<Integer> L = null;
                        L = Search_R.get(Tabla.getSelectedRow()).getAtomoEncontrados();

                       
                        for (int i = 0; i < L.size(); i++) {
                            MarcoMolecula.getMarco().addSelection(L.get(i));
                        } 


La idea es mas o menos un buscador de fragmentos de moleculas dentro de una base de datos, yo busco, recupero los datos y muestro las moleculas encontradas. El asunto es que con el ultimo ciclo quiero resaltar los atomos que coinciden en la busqueda, para ello tengo el metodo addSelection que me permite agregar atomos seleccionados. Pues bien este ciclo hace lo que tiene que hacer cuando lo debugueo pero cuando ejecuto el programa normalmente no lo hace.

Estoy utilizando eclipse 3.2, estoy trabajando con hilos, aunque en este metodo no los utilizo. Cuando debugueo a pesar que hace lo correcto no me muestra valores ni nada de las variables del metodo, pero los resultados arrojados si son correctos....

Agradecere como siempre las certeras sugerencias.....


Un abrazo a todos


Oracle

Fate 12-02-2008 23:31:13

No es posible eso
 
Simplemente ponle que imprima el numero de elementos que trajo tu metodo, tanto en debug como al correrlo y compara si es lo mismo.

Para esto siempre tienes que realizar pruebas dummy's y sobre todo empezar a meter 'step over' al hacer tu debug y verificar cada variable

jachguate 13-02-2008 01:35:50

El título de este hilo es inadecuado. Te recomiendo que leas la guía de estilo.

Hasta luego.

;)

oracle 13-02-2008 14:52:34

Amigo Fate, hago exactamente lo que sugieres y efectivamente hace lo mismo tanto en el debuguin como en la ejecucion normal, imprime la misma cantidad de elementos. Lo unico fuera de lo comun que he notado, es que cuando estoy debugueando, y le doy Watch a una variable, en el inspector de expresiones me sale "no explicit return value"...he googleado un poco, pero no he podido dar al traste con este problema....


agradezco cualquier sugerencia....

Saludos

oracle

oracle 13-02-2008 14:55:16

Amigo jachguate ya he cambiado el titulo, a ver si ahora esta mas sugerente...anhorabuena.....gracias

oracle 13-02-2008 14:56:06

Disculpen como hago para postear una imagen aqui para mostrarles algo....??

Saludos

Fate 14-02-2008 22:36:05

Imposible
 
No puede dar algo diferente en debug y al correrlo, pero tan pronto sepas que fué dinos, para reir un rato

oracle 15-02-2008 02:44:45

Fate
Cita:

No puede dar algo diferente en debug y al correrlo, pero tan pronto sepas que fué dinos, para reir un rato

Amigo Fate a lo que me refiero es que la app no hace lo mismo en debug que al correrlo, es decir en debug hace algo que al correrlo identicamente no lo hace. En este caso para ser mas especifico, cuando estoy en debug se dibuja algo sobre un panel que al correrlo no se dibuja, ahi esta el asunto....

Sin dudas cuando tenga la solución os haré saber,

oracle

oracle 20-02-2008 14:35:00

Mis saludos nuevamente:

COmo les prometi, cuando encuentre la solucion os hare saber, pero desafortunadamente aun no es asi, estuve probando algunas cosas y en primer lugar encontre lo siguiente:

Código:


ArrayList<Integer> L = new ArrayList<Integer>();
                         
L = (Resultado)Search_R.get(Tabla.getSelectedRow())).getAtomoEncontrados();
    for (int i = 0; i < L.size(); i++) {
          MarcoMolecula.getMarco().addSelection(L.get(i));
        }

La lista L esta inicializada como Null, esa era la razon por la que me lanzaba el mensaje "no explicit return value" cuanod trataba de ver el valor de las variables con Watch....

Ahora, otra cosa curiosa, las siguientes lineas siguen funcionando en debug correctamente, o sea hacen lo que tienen que hacer, mientras que en la ejecucion normal no. Sin embargo si esas mismas lineas las pongo dentro de otro metodo, o evento si se ejecutan tanto en debug como en ejecucion.

Otra cosa muy muy interesante, si el debug lo hago linea por linea, o sea hago un barrido de ese codigo todo bien, ahora, si yo ejecuto la app en debug pero no ejecuto una por una las lineas, sino que salto con el boton de continuar, pues ahi tampoco hace nada.....asi que seria algo interesante de valorar....

Por ultimo todo este conjunto de operaicones se realizan dentro del evento MauseClick de un JTable quizas eso tenga algo que ver...

Bueno mis saludos reiterados, espero puedan darme alguna sugerencia....


oracle

oracle 20-02-2008 18:06:05

Mis saludos sabios camaradas, veran que ya nos hacercamos a la solución:

Bueno tras muchos inventos y pruebas le he agregado esta linea al cliclo para verificar que entra en el....

Código:


for (int i = 0; i < L.size(); i++) {
MarcoMolecula.getMarco().showMessage(Integer.toString(L.get(i)), "", 1);
      MarcoMolecula.getMarco().addSelection(L.get(i));                               
                            }

Como deben estar pensando el mensaje se muestra correctamente y muestra los datos correctos tambien, una vez que ha terminado el ciclo el metodo hace lo que yo necesito. tanto en debug como en tiempo de corrida.

Si quito esa linea Bum, lo mismo otra vez, el ciclo no hace lo que tiene que hacer, como si nunca pasara por ahi....

Todo esto esta dentro del mauseClick de una tabla...tomo todo ese codigo y lo pongo en un boton cualquiera y funciona perfectamente, no se realmente que es lo que esta pasando con el mauseClick ese que no pincha bien....

casi lo logramos!!!!

oracle


La franja horaria es GMT +2. Ahora son las 02:01:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi