Due to changes in FPC trunk r33328, "All options" dialog comes up as empty when invoking it.
Original Reporter info from Mantis: Cyrax
-
Reporter name:
Original Reporter info from Mantis: Cyrax
- Reporter name:
Description:
Due to changes in FPC trunk r33328, the logic which parses FPC compiler help screen now fails silently (it is run inside a thread) and thus "All options" dialog shows nothing.
TStringList.Find now raises a exception if it is used on non-sorted list.
Source location which uses Find method (line 967 in ide\compiler.pp):
if fSupportedCategories.Find(ch, i) then Result := fSupportedCategories.Objects[i] as TStrings ...
See Steps To Reproduce and Additional Information for more info.
Steps to reproduce:
- Create a new, empty project.
- Go to project options->Compiler options->Custom options and press "All options.." button.
- Observe empty dialog.
Additional information:
Call stack when the exception happens:
#0 fpc_raiseexception(0x13b91354, 0x16c5fe08, 0x13d25390) at seh32.inc:86 #1 TSTRINGLIST__FIND(0x13d25390, 0x13b91354 'a', -1) at ..\objpas\classes\stringl.inc:1447 #2 TCOMPILEROPTREADER__ADDCHOICESNEW(0x13be8148, 0x13c0368c 'Select ABI; see fpc -i or fpc -ia for possible values') at compiler.pp:967 #3 TCOMPILEROPT__PARSEEDITKIND(0x13dfbb08) at compiler.pp:456 #4 TCOMPILEROPT__PARSEOPTION(0x13dfbb08, 0x137239dc '-Ca&LtPos;x> Select ABI; see fpc -i or fpc -ia for possible values', 6) at compiler.pp:488 #5 TCOMPILEROPTREADER__PARSEH(0x13be8148, 0x13723930) at compiler.pp:1180 #6 TCOMPILEROPTREADER__READANDPARSEOPTIONS(0x13be8148) at compiler.pp:1224 #7 TCOMPILEROPTTHREAD__EXECUTE(0x13de6960) at compiler.pp:1447 #8 THREADPROC(0x13de6960) at ..\objpas\classes\classes.inc:198 #9 MAIN_WRAPPER(0x13b91468, 0x49294c) at seh32.inc:430 #10 ?? at :0 #11 KERNEL32!BaseThreadInitThunk at :0 #12 ntdll!RtlInitializeExceptionChain at :0 #13 ntdll!RtlInitializeExceptionChain at :0 #14 ?? at :0
---
Lazarus and FPC was built with these options :
Lazarus revision 52064 FPC revision 33336FPC make commands: clean all install OPT=-gw2 -godwarfsets -godwarfmethodclassprefix -gl -O- -Xs- -Si- -vbq -dCTYPES_INLINE_OFF -dSTRINGS_INLINE_OFF -dHEAPTRC_INLINE_OFF -dWINDOWS_INLINE_OFF -dDYNLIBS_INLINE_OFF -dSYSUTILS_INLINE_OFF -dMATH_INLINE_OFF -dTYPINFO_INLINE_OFF -dCPU_INLINE_OFF -dCHARSET_INLINE_OFF -dCHARACTER_INLINE_OFF -dUNICODEDATA_INLINE_OFF -dTEST_WIN32_SEH COMPILER_OPTIONS=-gw2 -godwarfsets -godwarfmethodclassprefix -gl -O- -Xs- -Si- -vbq -dCTYPES_INLINE_OFF -dSTRINGS_INLINE_OFF -dHEAPTRC_INLINE_OFF -dWINDOWS_INLINE_OFF -dDYNLIBS_INLINE_OFF -dSYSUTILS_INLINE_OFF -dMATH_INLINE_OFF -dTYPINFO_INLINE_OFF -dCPU_INLINE_OFF -dCHARSET_INLINE_OFF -dCHARACTER_INLINE_OFF -dUNICODEDATA_INLINE_OFF -dTEST_WIN32_SEH OS_TARGET=win32 CPU_TARGET=i386 REVSTR=33336 UPXPROG=echo IDE=1 NOWPOCYCLE=1 INSTALL_PREFIX=j:\free_pascal_and_lazarus_new4\fpc\i386\win32\binary\3.1.1\fpc_trunk\trunk
Lazarus make commands: clean all OPT=-gw2 -godwarfsets -godwarfmethodclassprefix -gl -gh -O- -Si- -vb -dHEAPTRC_WINDOW -dDBG_WITH_DEBUGGER_DEBUG UPXPROG=echo USESVN2REVISIONINC=0
Mantis conversion info:
- Mantis ID: 29907
- OS: Server 2008 R2
- OS Build: 6.1.7601 (SP1)
- Build: r52064
- Platform: Windows
- Version: 1.7 (SVN)
- Fixed in revision: r52066 (#e9527743)