Skip to content

Issues with FPC, Lazarus

alexx2000 edited this page Feb 21, 2018 · 1 revision

This is a list of known issues in FPC and Lazarus that affect Double Commander, with possible workarounds or fixes.

Free Pascal

  1. No exception back trace printed with TList, TFPList, TFPSList and possibly others (issue 12528)
    The patch attached to the FPC issue fixes the problem.
    Hopefully finally fixed in FPC 2.7.1.
  2. Only first backtrace in big program has attached source and line information (issue 13518)
    For FPC 2.6 you can use this patch.
  3. backtrace/line information is missing function names under 64-bit FPC (issue 17547)
  4. FPC crashes when building Double Commander (issue 15518)
    If you have a crash just rebuild everything with -B option. Or clean all files from output directory and rebuild. In Lazarus choose Build All option instead of Build (or Build option instead of Compile, if you use Lazarus 0.9.31 or higher; the menu item names have changed).
  5. Cannot unload shared library on Linux
    When unloading shared library Double Commander will hang, so that means plugins cannot be correctly unloaded. Issue has been fixed in FPC 2.4.0 but incorrectly, therefore the fix was reverted and the bug exists in FPC 2.4.2, 2.4.4. It has been fixed differently in trunk, so will be fixed in FPC 2.6.0.
    Workaround is to not unload plugins in Double Commander, or build plugins (just plugins) with FPC 2.5.1.
  6. STABS debugging format does not work well on Macintosh; linker produces warnings:ld: warning: unknown stabs type. Apparently this is a bug in XCode linker starting with version 3.0 (see: here and here). For this reason on MacOSX it is advised to use Dwarf debugging format; pass -gw instead of -g or change appropriate option in Lazarus project options (Linking page).
  7. Linking might fail with FPC 2.6.x when using STABS debugging info with a message similar to: doublecmd.lpr(136,1) Error: Undefined symbol: VMT_UHOTKEYMANAGER_TFPGOBJECTLIST$THMBASEOBJECT$TWINCONTROL$THMOBJECTINSTANCE$TWINCONTROL_$__ In that case DWARF debugging info must be used. It has been fixed in FPC 2.7.x. (issue 20003)

Lazarus