Can you confirm a couple of things please, relating to Lazarus 2.0.0 -
1. Right at the start, you mentioned that LazDebuggerFpLLdb "should be in the list of available packages" but on my system, Packages->Install/UninstallPackages does not list it. It is, as you also mention, in Components->....
Should I assume thats as expected ?
It should be in the left side list, as it should already be installed.
If you open Tools > Options, and go to the Debugger page, then "LLDB with fpdebug) should be in the dropdown of debugger types
Once selected, you need to give it the location of lldb (/usr/bin/lldb) in the edit field below.
2. When setting the IDE to use LLdb, we should choose "LLDB debugger (with fpdebug) (Beta)" ?
Yes.
Not tested, but afaik lldb (without fpdebug) does not understand a watch like "MyObject.FValue". Instead it takes "MyObject->FValue"
And typecasts would be c-style too "(int) FValue"
3. The IDE then requires us to choose one of several exe formats. Is there any particular preference ?
Not sure what you refer to? I assume "debug info"?
This applies on all platforms, and for all type of debuggers. (So it is the same for gdb on win/linux). Only which one is best, is different depending on the debugger.
For "lldb + fpdebug" the best is "dwarf3".
In the unexpected case of problems, it may be worth trying "dwarf with sets".
This setting only affects the units directly in your project.
However units in packages may have debug info too.
This can be
- set per package
- for many, but not all packages in menu Tools > Configure build Lazarus
- project settings > "Additions and overrides"(search wiki)
If you change settings for package, you may as well check into which package you expect to step. Package you do not step into, do not need debug info.
If you use a type from a package (such as TForm from LCL) it is enough that your unit (in which you declare the variable / must declare and use a variable to include the type) has debug info.
Reducing the amount of packages with debug info (including those that default to have debug info), can shorten the debuggers start-up time.
Also it may be worth comparing (I have not tested) the debuggers start up time for the same settings, only changing the checkbox "use external debug info".
This needs to be only set in your project. If set in your project it will affect all packages. (If set in a package it will do nothing / at least should...)
--EDIT
I updated the initial post. Hope it is more accurate now.