Identifying boot loaders

Is there any way to read a bootloader from program space?
There seem to be innumerable slightly different versions of
eg: Optiboot, and since I'm hitting what appears to be a
bootloader bug I'd like to try to identify which bootloader
I'm actually using. Bootloaders don't seem to have any
sort of sign-on string.

Thanks - Will

Is there any way to read a bootloader from program space?

No; the memory protection bits are currently set to disallow this :frowning:

I'd like to try to identify which bootloader I'm actually using.

You can do this during a "verbose" upload. Somewhere in that log (near the beginning) is a section that looks like:

avrdude: Recv: . [03] 
avrdude: Recv: . [10] 
         Hardware Version: 3
         Firmware Version: 4.4
avrdude: Send: A [41] . [84]   [20] 
avrdude: Recv: . [14]

The number in the "Firware Version" line is ... the optiboot bootloader version.
Very old Unos may show 3.3, current production version is 4.4, and the latest optiboot repository has 5.0.
(unfortunately, if someone has built a custom version of optiboot, they PROBABLY didn't change the version number.)

Many thanks - that explains why avrdude in terminal mode gives a certain amount of information,
but always crashes out when I try to read the memory.

I've got the firmware version number from avrdude - I couldn't work out which firmware it was,
so knowing it's the loaded firmware is extremely helpful.

Thanks again - Will