noseglasses / elf_diff

A tool to compare ELF binaries
GNU General Public License v3.0
171 stars 21 forks source link

Error "Exception: Unnable to find objdump command" #96

Closed Femtometer closed 2 years ago

Femtometer commented 2 years ago

Runtime: Windows7 Python 3.8

CMD: py -m elf_diff diff_note.hmtl app_0210.elf app_0225.elf

Seems need other requirements, I install with pip.

D:\Documents\Elf_Diff_Demo>py -m elf_diff diff_note.hmtl app_0210.elf app_0225.elf

Traceback (most recent call last): File "D:\Python38\lib\site-packages\elf_diff__main.py", line 111, in main settings = Settings(module_path) File "D:\Python38\lib\site-packages\elf_diff\settings.py", line 353, in init__ self._considerCommandLineArgs(cmd_line_args) File "D:\Python38\lib\site-packages\elf_diff\settings.py", line 508, in _considerCommandLineArgs self.binutils.initialize( File "D:\Python38\lib\site-packages\elf_diff\binutils.py", line 106, in initialize self.findUtility("objdump") File "D:\Python38\lib\site-packages\elf_diff\binutils.py", line 93, in findUtility raise Exception(f"Unnable to find {name} command") Exception: Unnable to find objdump command

elf_diff is unconsolable :-( Something went wrong Error: Unnable to find objdump command Don't let this take you down! Have a nice hot coffee and start over.

noseglasses commented 2 years ago

elf_diff relies on GNU binutils to extract symbol informations from binaries. Binutils - if installed - comes with a set of executables like objdump and readelf.

To solve your problem you need to either install the binutils package that is compatible with the compiler that you used to build the binary or, if already installed, add the directory that contains binuntils binary to your Path/PATH variable.

elf_diff also has a command line argument that allows specifying a binutils path if modifying the Path variable is not feasible.

noseglasses commented 2 years ago

Closing this. Feel free to reopen if necessary.