AIMP Forum

AIMP for Windows => Дополнения / Addons => Разработка / Development => Topic started by: nomansland on October 29, 2016, 07:41:21

Title: what is the exception handle mechanism of plugins manager?
Post by: nomansland on October 29, 2016, 07:41:21
when open aimp, *occasionally* aimp popup a dialoag showes my plugin raised exception and will be automatically unloaded. but when i debug it using windbg, i cann't find any exception in my plugin, just 80000003 exception from aimp.runtime.dll. in fact my plugin loaded succefully,but now the iaimpcore* i saved in my plugin is invalid,this  causes subsequent prolems.

why is that? does the plugins manager encounter some special conditon and release the IAIMPCore* passed to plugin?

Appreciative of your help.
Title: Re: what is the exception handle mechanism of plugins manager?
Post by: nomansland on October 29, 2016, 08:02:26
 # ChildEBP RetAddr  Args to Child             
00 0019e1c0 7624c2df 002c06ce 00000001 00000012 win32u!NtUserWaitMessage+0xc
01 0019e208 7624c190 00000000 00000001 0019e480 USER32!DialogBox2+0x13d
02 0019e238 762bb2a7 002c06ce 762b73d0 0019e480 USER32!InternalDialogBox+0x10e
03 0019e304 762b8e0b 0019e480 02fe42bc 00000000 USER32!SoftModalMessageBox+0x2227
04 0019e468 762b8b1e 02fe42bc 00000010 002c06ce USER32!MessageBoxWorker+0x29a
05 0019e4ec 762b887b 002c06ce 02fe42bc 6e8096c4 USER32!MessageBoxTimeoutW+0x7e
06 0019e50c 762b8b68 002c06ce 02fe42bc 6e8096c4 USER32!MessageBoxExW+0x1b
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Users\Jack\Downloads\AIMP\AIMP.Runtime.dll -
07 0019e528 028a7aee 002c06ce 02fe42bc 6e8096c4 USER32!MessageBoxW+0x18
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Users\Jack\Downloads\AIMP\AIMP.Shared.dll -
WARNING: Stack unwind information not available. Following frames may be wrong.
08 0019e5b0 6e809669 00000010 6e809678 0019fe9c AIMP_Runtime!VclFormsTApplicationMessageBox$qqrpxbt1i+0xfe
09 0019e5ec 6e8091e7 00000000 6e807559 041ea530 AIMP_Shared!AimpPluginsTAIMPPluginManagerDoPluginCrashes$qqrx20SystemUnicodeStringp24AimpPluginsTAIMPPlugin+0xe1
0a 0019fed4 6e808ca3 0019fefc 6e808cb9 0019fef4 AIMP_Shared!AimpPluginsTAIMPPluginManagerLoad$qqrx20SystemUnicodeString+0xcb
0b 0019fef4 6e808f9c 0019ff24 6e808fcb 0019ff1c AIMP_Shared!AimpPluginsTAIMPPluginManagerFinalize$qqrv+0x1eb
0c 0019ff1c 6e808d4d 0019ff70 6e808d6b 0019ff48 AIMP_Shared!AimpPluginsTAIMPPluginManagerEnumPlugins$qqr66System%DelphiInterface$39AimpPluginsTAIMPPluginManagerEnumProc%+0x7c
*** ERROR: Module load completed but symbols could not be loaded for C:\Users\Jack\Downloads\AIMP\AIMP.exe
0d 0019ff48 006ee5cb 03b426e0 006ee9bd 03b426e0 AIMP_Shared!AimpPluginsTAIMPPluginManagerConfigLoad$qqrp31AclFileformatsIniTACLIniFile+0x85
0e 0019ff5c 006edd80 02ae0940 00706ee4 0024f000 AIMP+0x2ee5cb
0f 0019ff80 75d262c4 0024f000 75d262a0 ab3b4fe3 AIMP+0x2edd80
10 0019ff94 77ab0609 0024f000 a9517071 00000000 KERNEL32!BaseThreadInitThunk+0x24
11 0019ffdc 77ab05d4 ffffffff 77ad253e 00000000 ntdll!__RtlUserThreadStart+0x2f
12 0019ffec 00000000 00706e5c 0024f000 00000000 ntdll!_RtlUserThreadStart+0x1b
Title: Re: what is the exception handle mechanism of plugins manager?
Post by: nomansland on October 29, 2016, 10:38:29
now i must do on other way.
in the plugin Initialize fuction, i check the AIMP_MSG_PROPERTY_LOADED, i delay creating my window if loaded is false.
thus there is no exception anymore.