I want to debug an application I don't have symbol files for. I understood that it is necessary to debug on assembly level if I lack the necessary debug information. Since I don't have debug symbols I can't set breakpoints directly on method names, however I still should be able to set a breakpoint on an address.
So I simply tried to set a breakpoint on the entry address, this is what I did:
user@MacBookAir$ gdb
(gdb) file someexecutable
(gdb) info file
The last command returned the following entry point:
After having the address, I simply said:
(gdb) break *0x0000000100119ec8
(gdb) run
Unfortunately the target application launched without breaking at the entry point, so I tried it again but this time I did set breakpoints on a few addresses following the entry point address - without success.
The next attempt was to try the solution by Igor Skochinsky which he posted in this question (Stopping at the first machine code instruction in GDB) to set breakpoints with:
(gdb) b _start
(gdb) b start
But both of these commands resulted in the same error:
No symbol table is loaded. Use the "file" command.
Well yeah, apparently I need debug symbols for this to work as well. Then I thought perhaps it just showed an incorrect entry point address, so I verified it with the command:
user@MacBookAir$ otool -l someexecutable
And received the following output:
So it appears to be the same entry point as GDB returned. And now I don't know what else I could try. :) Perhaps you guys have an idea on what else I could try. Any help would be very much appreciated. If something is unclear or if I missed some important information just leave a short comment.