What's a good way to disassemble Phobos?

Dukc ajieskola at gmail.com
Sat Apr 30 18:18:02 UTC 2022


I have figured out that my development build of Phobos is for 
some reason including instances of `__cmp` and `dstrcmp` 
templates from DRuntime in the Phobos binary. Since `-betterC` 
client code does not link Phobos in, it fails if it tries to use 
those functions.

The problem: how do I track down what includes those functions in 
the Phobos binary? The -vasm switch of DMD gives a neat output, 
but I can get it to only show the disassembly of files I'm 
compiling (not already combined files), and before the linking 
phase. So no info where the function calls point to.

I also tried ndisasm. It can disassemble already compiled 
binaries, but it's output is utter trash. It can't even figure 
where a function begins or ends, let alone displaying their name. 
Instead it displays just a sea of `add` instructions for the 
areas between the functions.

I'm looking for something where I could search for the call to 
the DRuntime functions in question, from an already combined .o 
or .a. What do you suggest? I'm on Linux.


More information about the Digitalmars-d-learn mailing list