Forum > macOS / Mac OS X
IDE Leaks and Traces "Resolve" fails on Mac OSX (
Martin_fr:
About the "no extra size without dsym".
IIRC (and again: trip down memory lane, way down memory lane), the debug info is in the *.o files in the directories where the ppu files are too.
That means, if you build "Project1" that uses LCL, and then rebuild LCL with different settings ,then the debug info for project1 is no longer good. There are some checksums, so the changed info is ignored.... (Again, caution, that info is from distant memory...)
kcandrews:
FWIW Here is an interesting section/comment in FpImgReaderMacho.pas.
Not at all my territory but sounds like a confirmation that the executable in Mac OSX will never contain DWARf-debug info, getting that info is a matter of going through all the .o files or using dSym.
To use the dSym file would require a Lazarus Mac user to know he/she must check the external debug checkbox to even have hope. But then, in my experience, loading the dSym doesn't seem to be automatic proces in that case either. And I wonder if there was any coordination between the "Leaks and Traces" developers and FPDebug?
...
procedure TDbgMachoDataSource.AddSubFilesToLoaderList(ALoaderList: TObject;
PrimaryLoader: TObject);
var
PLoader: TDbgImageLoader absolute PrimaryLoader;
LList: TDbgImageLoaderList absolute ALoaderList;
ALoader: TDbgImageLoader;
fname, dSYMFilename: String;
i: SizeInt;
begin
// JvdS: Mach-O binaries do not contain DWARF-debug info. Instead this info
// is stored inside the .o files, and the executable contains a map (in stabs-
// format) of all these .o files. An alternative to parsing this map and reading
// those .o files a dSYM-bundle could be used, which could be generated
// with dsymutil.
// PLoader.FileName in Contents/MacOS
Is JvdS a developer's name who could be queried on this topic? Are the developers involved in FPDebug and Leaks and Traces still active?
TRon:
--- Quote from: kcandrews on January 27, 2024, 10:50:18 pm ---Is JvdS a developer's name who could be queried on this topic?
--- End quote ---
He is an active developer, yes. See f.e. his gitlab. Usual in this kind of situation is to post a question on the developers ML. I have no idea if he is active on the forums (most developers aren't).
Martin_fr:
--- Quote ---
--- Code: Text [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- // JvdS: Mach-O binaries do not contain DWARF-debug info. Instead this info // is stored inside the .o files, and the executable contains a map (in stabs- // format) of all these .o files. An alternative to parsing this map and reading // those .o files a dSYM-bundle could be used, which could be generated // with dsymutil.
--- End quote ---
Ah, there it is. My memory wasn't that wrong.
If there is NO dsym:
* In your project dir is a lib folder, and it has ppu and o files => and they are queried for the debug info. If you clean out the lib folder, then that debug info is gone.
* Worse, as indicated, for packages. If another project recompiles the package => debug info is gone.
I don't know if the "references" to those o files are absolute or not. So I don't know if those o files will be found, if the app / app-bundle is moved.
kcandrews:
Important to remind myself that Lazarus is a lot of excellent free work done by many generous people!
Thanks to all!
(I'll retreat back to the idea of setting up another OS to find my leaks.)
Navigation
[0] Message Index
[#] Next page
[*] Previous page