Autor
|
Tema: consulta sobre Funciones de manejo de errores [c++] (Leído 7,177 veces)
|
xkiz ™
|
hola gente, estoy realizando una aplicación, la cual me esta dando dolores de cabeza, osea en esta aplicación estoy usando MCISendString para manejar un stream web de una radio. el problema es que normalmente la aplicación no crashea, pero aveces si y la verdad que no se que es lo que puede estar causando este crash, las veces que Debuguie no tuve errores, osea la aplicación puede llegar a funcionar 10 horas sin errores pero también creashearse al iniciar, y la verdad estoy re perdido. Antes cuando programaba en VB6, tenia la forma de saber que numero de linea en X funcion que causaba el error, así podía fixearlo pero ahora estoy programando en C++, VC++6.0 (WinApi) y la verdad estoy re perdido, osea yo creo que la causal del error puede ser el streamming , pero por ahí el error provenga de otro lado, y yo lo este pasando por alto. Googleando un poco encontré en msdn Error Handling Functions pero la verdad es que no se bien como usar la mayor parte de las funciones que estan ahi o si alguna de esas funciones me servirán para lo que estoy tratando de averiguar, el origen de lo que cause el Crash de la aplicaron, o si alguien sabe como averiguar esto, me serviría muchísimo...
|
|
« Última modificación: 7 Octubre 2011, 22:23 pm por xkiz ™ »
|
En línea
|
|
|
|
LearningSpanishProgrammer
Desconectado
Mensajes: 67
|
Debe buscar alguna cosa similar a el "Valgrind" o usar el Debugger
Son muy buenos para encontrar errores.
|
|
|
En línea
|
Estoy aprendiendo español, y tu estas aprendiendo programación
|
|
|
xkiz ™
|
el tema es que el 99% de las veces que inicie el programa en debug, no me tira ningún error, osea usar un debugger no me sirve de mucho. por eso lo que busco es alguna forma que me indique que fue lo que causo el error, onda try & catch.
yo me hice un debugger que me intercepta las llamadas a OutputDebuString, que es lo que uso como debugger para indicarme a mi mismo cosas dentro del programa en ejecución, pero el nunca pude interceptar Crash.
|
|
|
En línea
|
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Podes instalar el WinDbg (EL depurador para Windows) y configurarlo para que sea el depurador post-mortem (ejecutandolo con -I) y de esa manera cuando el proceso muera se abrira el WinDbg y podras ver a que se debe exactamente.
Busca "Debugging tools for Windows" en Google.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
xkiz ™
|
ok, voy a probar el depurador para windows y veo que pasa.... cuando el WinDbg capte el error lo publico, porque lo que estuve viendo no entiendo nada de lo que dice.
|
|
« Última modificación: 8 Octubre 2011, 03:30 am por xkiz ™ »
|
En línea
|
|
|
|
xkiz ™
|
perdon por el doble post, pero si no reposteo , este tema no va a aparecer como que hay info nueva. efectivamente hoy me tiro el error que causa el Crash. como no veo nada destacable en la info dada por el WinDbg, expongo todo lo que salio. Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64 Copyright (c) Microsoft Corporation. All rights reserved.
*** wait with pending attach Symbol search path is: *** Invalid *** **************************************************************************** * Symbol loading may be unreliable without a symbol search path. * * Use .symfix to have the debugger choose a symbol path. * * After setting your symbol path, use .reload to refresh symbol locations. * **************************************************************************** Executable search path is: ModLoad: 00000000`00400000 00000000`00431000 D:\Info_Local\User\Escritorio\iRadio.exe ModLoad: 00000000`77820000 00000000`779c9000 C:\Windows\SYSTEM32\ntdll.dll ModLoad: 00000000`77a00000 00000000`77b80000 ntdll.dll ModLoad: 00000000`75090000 00000000`750cf000 C:\Windows\SYSTEM32\wow64.dll ModLoad: 00000000`75030000 00000000`7508c000 C:\Windows\SYSTEM32\wow64win.dll ModLoad: 00000000`75020000 00000000`75028000 C:\Windows\SYSTEM32\wow64cpu.dll ModLoad: 00000000`77030000 00000000`77140000 KERNEL32.dll ModLoad: 00000000`769f0000 00000000`76a36000 KERNELBASE.dll ModLoad: 00000000`76720000 00000000`76820000 USER32.dll ModLoad: 00000000`76ed0000 00000000`76f60000 GDI32.dll ModLoad: 00000000`779d0000 00000000`779da000 LPK.dll ModLoad: 00000000`76f60000 00000000`76ffd000 USP10.dll ModLoad: 00000000`76630000 00000000`766dc000 msvcrt.dll ModLoad: 00000000`76820000 00000000`768c0000 ADVAPI32.dll ModLoad: 00000000`76400000 00000000`76419000 SECHOST.dll ModLoad: 00000000`76540000 00000000`76630000 RPCRT4.dll ModLoad: 00000000`750f0000 00000000`75150000 SspiCli.dll ModLoad: 00000000`750e0000 00000000`750ec000 CRYPTBASE.dll ModLoad: 00000000`757b0000 00000000`763fa000 SHELL32.dll ModLoad: 00000000`76c60000 00000000`76cb7000 SHLWAPI.dll ModLoad: 00000000`72db0000 00000000`72f4e000 COMCTL32.dll ModLoad: 00000000`733a0000 00000000`733d2000 WINMM.dll ModLoad: 00000000`75270000 00000000`752d0000 IMM32.dll ModLoad: 00000000`768c0000 00000000`7698c000 MSCTF.dll ModLoad: 00000000`72d30000 00000000`72db0000 UxTheme.dll ModLoad: 00000000`74a20000 00000000`74a33000 dwmapi.dll ModLoad: 00000000`75360000 00000000`754bc000 ole32.dll ModLoad: 00000000`6fb10000 00000000`6fb49000 MMDevAPI.DLL ModLoad: 00000000`73f50000 00000000`74045000 PROPSYS.dll ModLoad: 00000000`752d0000 00000000`7535f000 OLEAUT32.dll ModLoad: 00000000`6fa40000 00000000`6fa70000 WINMMDRV.dll ModLoad: 00000000`6fa80000 00000000`6fa84000 ksuser.dll ModLoad: 00000000`6fbb0000 00000000`6fbb7000 AVRT.dll ModLoad: 00000000`76cc0000 00000000`76e5d000 SETUPAPI.dll ModLoad: 00000000`77000000 00000000`77027000 CFGMGR32.dll ModLoad: 00000000`76be0000 00000000`76bf2000 DEVOBJ.dll ModLoad: 00000000`6fa90000 00000000`6fac6000 AudioSes.DLL ModLoad: 00000000`6fa70000 00000000`6fa78000 MSACM32.DRV ModLoad: 00000000`73f30000 00000000`73f44000 MSACM32.dll ModLoad: 00000000`6fa20000 00000000`6fa27000 MIDIMAP.dll ModLoad: 00000000`6fa00000 00000000`6fa0c000 MCIQTZ32.dll ModLoad: 00000000`6e560000 00000000`6e6d7000 QUARTZ.dll ModLoad: 00000000`75680000 00000000`75703000 CLBCatQ.DLL ModLoad: 00000000`6f8d0000 00000000`6f905000 QASF.dll ModLoad: 00000000`6fad0000 00000000`6fadb000 msdmo.dll ModLoad: 00000000`6efc0000 00000000`6f227000 WMVCore.DLL ModLoad: 00000000`6ef80000 00000000`6efbd000 WMASF.DLL ModLoad: 00000000`744e0000 00000000`74670000 gdiplus.dll ModLoad: 00000000`74190000 00000000`741be000 MLANG.dll ModLoad: 00000000`75150000 00000000`7526a000 WININET.dll ModLoad: 00000000`76e60000 00000000`76e63000 Normaliz.dll ModLoad: 00000000`754c0000 00000000`75676000 iertutil.dll ModLoad: 00000000`76a40000 00000000`76b50000 urlmon.dll ModLoad: 00000000`74440000 00000000`74448000 Secur32.dll ModLoad: 00000000`73680000 00000000`7368b000 profapi.dll ModLoad: 00000000`766e0000 00000000`76715000 WS2_32.dll ModLoad: 00000000`76bd0000 00000000`76bd6000 NSI.dll ModLoad: 00000000`74dc0000 00000000`74e04000 DNSAPI.dll ModLoad: 00000000`74d50000 00000000`74d6c000 IPHLPAPI.DLL ModLoad: 00000000`74d40000 00000000`74d47000 WINNSI.DLL ModLoad: 00000000`74b50000 00000000`74b66000 CRYPTSP.dll ModLoad: 00000000`74b10000 00000000`74b4b000 RSAENH.dll ModLoad: 00000000`734c0000 00000000`734ce000 RpcRtRemote.dll ModLoad: 00000000`71a90000 00000000`723d5000 IEFRAME.dll ModLoad: 00000000`75710000 00000000`75715000 PSAPI.DLL ModLoad: 00000000`73ea0000 00000000`73edc000 OLEACC.dll ModLoad: 00000000`6f910000 00000000`6f942000 SWEEPRX.dll ModLoad: 00000000`6e760000 00000000`6e85c000 WMNetMgr.DLL ModLoad: 00000000`731d0000 00000000`731d8000 CREDSSP.dll ModLoad: 00000000`6f880000 00000000`6f8c2000 msv1_0.dll ModLoad: 00000000`6ec80000 00000000`6ec91000 cryptdll.dll ModLoad: 00000000`6ec50000 00000000`6ec7c000 wdigest.dll ModLoad: 00000000`73590000 00000000`735e8000 WINHTTP.dll ModLoad: 00000000`73540000 00000000`7358f000 webio.dll ModLoad: 00000000`74b90000 00000000`74be2000 RASAPI32.dll ModLoad: 00000000`74b70000 00000000`74b85000 rasman.dll ModLoad: 00000000`743b0000 00000000`743bd000 rtutils.dll ModLoad: 00000000`744d0000 00000000`744d6000 SensApi.dll ModLoad: 00000000`6f240000 00000000`6f29a000 netprofm.dll ModLoad: 00000000`74e80000 00000000`74e90000 nlaapi.dll ModLoad: 00000000`6f230000 00000000`6f238000 npmproxy.dll ModLoad: 00000000`74e10000 00000000`74e4c000 MSWSOCK.dll ModLoad: 00000000`73630000 00000000`73635000 WSHTCPIP.dll ModLoad: 00000000`74cb0000 00000000`74cb6000 WSHIP6.dll ModLoad: 00000000`74d80000 00000000`74da7000 WLIDNSP.dll ModLoad: 00000000`74cc0000 00000000`74cc6000 rasadhlp.dll ModLoad: 00000000`74cd0000 00000000`74d08000 fwpuclnt.dll ModLoad: 00000000`74d30000 00000000`74d3d000 dhcpcsvc6.DLL ModLoad: 00000000`74d10000 00000000`74d22000 dhcpcsvc.DLL ModLoad: 00000000`6ec30000 00000000`6ec44000 DEVENUM.DLL ModLoad: 00000000`6e710000 00000000`6e752000 DSHOWRDPFILTER.DLL ModLoad: 00000000`74ec0000 00000000`74ecd000 WTSAPI32.dll ModLoad: 00000000`74410000 00000000`74439000 WINSTA.dll ModLoad: 00000000`6eb20000 00000000`6eb2a000 slc.dll ModLoad: 00000000`10000000 00000000`10877000 ffdshow.ax ModLoad: 00000000`76b50000 00000000`76bcb000 COMDLG32.dll ModLoad: 00000000`6e6e0000 00000000`6e705000 DINPUT.dll ModLoad: 00000000`6c470000 00000000`6c633000 d3d9.dll ModLoad: 00000000`74ed0000 00000000`74ed9000 VERSION.dll ModLoad: 00000000`6fa10000 00000000`6fa16000 d3d8thk.dll ModLoad: 00000000`6cc50000 00000000`6cd30000 WMADMOD.dll ModLoad: 00000000`6cdc0000 00000000`6ce19000 MFPlat.DLL ModLoad: 00000000`6e490000 00000000`6e557000 ac3filter.ax ModLoad: 00000000`6e1f0000 00000000`6e2ef000 ac3filter_intl.dll ModLoad: 00000000`06c50000 00000000`06d4b000 VSFilter.dll ModLoad: 00000000`73300000 00000000`73351000 WINSPOOL.DRV ModLoad: 00000000`6cd30000 00000000`6cda2000 DSOUND.dll ModLoad: 00000000`6fb50000 00000000`6fb75000 POWRPROF.dll (414.55c): Access violation - code c0000005 (!!! second chance !!!) *** WARNING: Unable to verify checksum for D:\Info_Local\User\Escritorio\iRadio.exe *** ERROR: Module load completed but symbols could not be loaded for D:\Info_Local\User\Escritorio\iRadio.exe iRadio+0x5540: 00405540 894c11fc mov dword ptr [ecx+edx-4],ecx ds:002b:305f45f8=????????
hoy lo único que saque en limpio es que el stream no es la causa, por que el programa se crasheo antes de las 08:00 y yo me levante a las 08:30 y el programa seguía reproduciendo el stream
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Tenes que configurar los simbolos, hace CTRL + S y agrega:
srv*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\pathdonde\este\elpdb\detu\programa
Despues podes hacer .reload y kb ffff para ver la pila y saber que llamadas se hicieron hasta llegar a donde se produce la excepcion que es por acceder a memoria invalida (un puntero erroneo muy probablemente).
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
xkiz ™
|
yo usaba el exe de Release, no el de Debug, por ende no tenia el .pdb . Ahora a ver si entendí bien. tengo que tener seteado el proyecto en Debug, compilar y ejecutar el iRadio.exe del Debug, cuando la app crashee, y se abra el WinDbg, [Ctrl] + [ S ] y en Symbol search path pegar srv*C:\Symbols*http://msdl.microsoft.com/download/symbols;D:\Info_Local\User\Escritorio\Radio\Debug\iRadio.pdb y tildar Reload y darle a Ok?
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Sin el iRadio.pdb, es un path (la version de Release tambien deberia tener .PDB). Yo te habia dicho de usar el comando .reload pero esa opcion de tildar tambien es valida.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
consulta sobre generador de funciones con eeprom
Electrónica
|
gallet
|
0
|
3,069
|
5 Abril 2006, 15:55 pm
por gallet
|
|
|
Ingenieria de Software en le Manejo de Errores
Programación General
|
cyberserver
|
2
|
4,078
|
24 Diciembre 2010, 05:58 am
por 1mpuls0
|
|
|
Consulta sobre manejo de memoria en Linux
GNU/Linux
|
jos3
|
1
|
3,429
|
22 Febrero 2011, 05:55 am
por Foxy Rider
|
|
|
[Consulta] Prototipos de funciones para include.
ASM
|
The Swash
|
3
|
3,806
|
3 Junio 2012, 06:20 am
por The Swash
|
|
|
Consulta sobre retorno en las funciones
Programación C/C++
|
NicoSanhueza
|
3
|
2,534
|
26 Junio 2018, 17:49 pm
por ThunderCls
|
|