This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Backtraces broken on i386 by unorthodox encoding of push %ebp


Jan Kratochvil wrote:

You should always provide unwind information and then it is irrelevant which
instructions and/or which their coding you use.

Yes, you're right, I could quite easily. But a design criterion for this project is that it is easy for third-parties to produce backtraces from production code (i.e. once debugging information has been stripped).

I think on balance, I should just fix the prologue to use the one-byte push instruction. (My reluctance to do that was because the in question code is just-in-time compiled code produced by a lightweight compiler/assembler that says resident in memory. I'm not keen to change the assembler component from the upstream version as the change to fix it looks more intrusive than you might imagine.)


Joel Brobecker wrote:

But if he cannot get the unwind information with the binary, it might indeed be easy enough to improve the prologue analyzer for x86. On x86_64, on the other hand, we made the conscious design decision to rely more on unwind info, so it's a little more questionable whether we'd want to do that for this target.

The thing I wanted to add to Richard is that there is a very high chance that the only way to get this fixed in GDB is by submitting a patch himself (to gdb-patches).

I'll certainly take a look at it to see if it's as straightforward as it seems.

However, I expect the same problem will arise on x86_64, and I can understand not wanting to complicate unnecessarily its prologue analyzer.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]