| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Vie 20 May, 2011 8:56 am Asunto: error break en rad studio c++ |
|
|
Saludos a todos.
Hay un problema que no ocurria en la versionas builder c++ 6 y anteriores.
Yo ejecuto la siguiente instruccion de ejemplo:
| Código: | rutaProcesados = qabs->FieldByName("RUTA_PROCESADOS_ABS")->AsString;
|
Como el campo RUTA_PROCESADOS_ABS no existe en la tabla de la base de datos salta un error, el problema es que no se para en esta instrucción si no que salta a otro archivo DB, en este caso, que contiene la siguiente funcion en pascal.
| Código: | procedure DatabaseError(const Message: string; Component: TComponent = nil);
begin
if Assigned(Component) and (Component.Name <> '') then
raise EDatabaseError.Create(Format('%s: %s', [Component.Name, Message])) else
raise EDatabaseError.Create(Message);
end; |
Por si fuera poco si continuas con F8, en muchas ocasiones salta a las instrucciones en ensamblador que a mi no me sirven y el debug se hace bastante engorroso en ocasiones por culpa de esto.
Este problema no se soluciona version tras version ni con actualizaciones.
¿alguien sabe si hay alguna opcion o algo para que cuando haya un error siempre se pare en la instruccion que el programador escribe y no salte a las funciones anteriores que soportan el codigo?
Gracias de antemano y espero que alguien sepa como solcionar es mosca cojonera del rad. |
|
| Volver arriba |
|
 |
elyeyo1000 Cdt

Registrado: 20 Dic 2006Mensajes: 17
|
Publicado: Lun 23 May, 2011 11:44 am Asunto: |
|
|
Hola ZHAX1,
¿Será que el objeto qabs lo estás definiendo dinamicamente en tiempo de ejcución y por eso se pierde la asociación entre el componente y el mensaje de error?
Si es así, será un poco estresante desarrollar a partir de las nuevas versiones, en las que tendrás que tener todos los componentes preparaditos antes de iniciar la aplicación. Espero que no sea esa la razón.
Saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 23 May, 2011 5:11 pm Asunto: |
|
|
Prueba cambiando lo siguiente en la configuración de tu proyecto:
MENU: Project -> Options... ->
(Primero en el combo de arriba que pone "Build Configuration" elegimos "Debug")
TREEVIEW: Directories and Conditionals ->
OPCIONES: Library path
(aquí buscamos donde pone "$(BDS)\lib\debug" y lo cambiamos por "$(BDS)\lib\release" teniendo cuidado de no tocar el resto)
(También lo puedes cambiar en las opciones por defecto de proyecto para que afecte a todos tus nuevos proyectos sin tener que estarlo cambiando cada vez)
----------
En la versión 6 y anteriores había una opción que ya no existe en las versiones nuevas que hacia lo de arriba, pero marcando o desmarcando simplemente un checkbox que por defecto venia desmarcado:
Project -> Options... -> Linker -> "Use debug libraries"
(Si lo marcas podrás comprobar que te pasara lo mismo que en las versiones más actuales) |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Jue 26 May, 2011 10:39 am Asunto: |
|
|
en library path me aparece esto en la version 10
| Cita: | c:\ac721;$(BDSLIB)\$(PLATFORM)\debug;$(BDSLIB)\$(PLATFORM)\release;$(BDSLIB)\win32\release\psdk;$(BDS)\RaveReports\Lib
|
con el platform en el medio, y vienen los 2.
$(BDSLIB)\$(PLATFORM)\debug;
$(BDSLIB)\$(PLATFORM)\release;
ahora mismo estoy con builder XE y quitando la linea de debug sigue saltandose el error al codigo pascal.
Gracias Leo por tu respuesta pero sigo sin solucion,
¿se puede probar otra cosa? |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Jue 26 May, 2011 11:05 am Asunto: |
|
|
esta pagina quizá pueda ayudar a alguien.
http://smartbear.com/support/viewarticle/18728/
siguiendo sus pasos y los de leo, dejando solo la opcion release he conseguido que pulsando f7 me salte a mi funcion y no ha codigo ensamblador o pascal .
Pero aun me siguen saltando los errores a un .h (ustring.h en mi caso) en lugar de hacerlo directamente en mi instruccion, pero es un avance, si se puede mejorar avisar.
gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 26 May, 2011 9:58 pm Asunto: |
|
|
| Hasta la versión 2010 viene como te decía más arriba, como 10 supongo que te refieres a la XE. Yo creo debería ser suficiente con quitar "$(BDSLIB)\$(PLATFORM)\debug;" o bien intercambiar el orden en esa línea y poner las "..\release" primero.. |
|
| Volver arriba |
|
 |
|