When debugging problems with shared libraries like "undefined symbol" it is usefull to know what library is needed by what library.
The objdump -x <libwhatever.so> | grep NEEDED command will show all of the shared libraries for a single module but what about the dependencies of all of those?
$ objdump -x kdevpythonlanguagesupport.so  | grep NEEDED
  NEEDED               libkdevpythoncompletion.so
  NEEDED               libkdevpythonduchain.so
  NEEDED               libkdevpythonparser.so
  NEEDED               libKDevPlatformLanguage.so.510
Thankfully there is a neat tool called libtree by haampie on github that does just that.
Just run libtree <libwhatever.so> and you get a nice tree.
$ libtree libkdevpythonparser.so 
libkdevpythonparser.so 
├── libpython3.10.so.1.0 [runpath]
│   ├── libpthread.so.0 [ld.so.conf]
│   ├── libutil.so.1 [ld.so.conf]
│   └── librt.so.1 [ld.so.conf]
├── libKDevPlatformLanguage.so.510 [ld.so.conf]
Very helpful! Thank you!