"bad_alloc" crash after downloading dependent modules.

Hi Folks,

I have been seeing a crash when connecting lldb tip to a remote arm lldb-server platform running on android.
The crash occurs directly after all the remote modules have been downloaded.
I have attached a transcript of a session which shows the error and displays a backtrace after the crash.

The same crash can be reproduced on both linux and windows.

Might I be doing something wrong with my setup / build?
Is 32bit Arm + Android a stable target for lldb / lldb-server or is this somewhat unstable?

I should point out that if I connect to lldb-server in gdbserver mode rather then platform this problem doesn't present itself.
That's perhaps because in that case the platform defaults to remote-linux rather then remote-android.

Thanks,
Aidan

session_bad_alloc.txt (7.98 KB)

Hello Aidan,

Thanks for the report. android-arm is not as stable as we would like
it to be, but we are actively working on changing that. Could you
provide us with more information about your setup:
- which android version/device are you encountering this on (try
running "adb bugreport")?
- which application are you attaching this to (if possible, send me an apk)

thanks,
pl

ps: these things can be big, so feel free to send it to me privately

Hello Aidan,

thanks for the information. We have identified the cause of the
problem to be an incorrect value passed through the JIT-debugger
interface <https://sourceware.org/gdb/onlinedocs/gdb/Declarations.html#Declarations>.
Specifically, the jit_code_entry:: symfile_size value is wrong. It
looks like it was written as a 32-bit value, whereas the "spec" says
the value should be 64-bit, regardless of the architecture.

Now, obviously wrong value should not crash the debugger, and we will
fix this. However, the main problem is that the wrong value is being
supplied over the interface. As I understand it, you (your team) are
in charge of the code which generates these structures. Could you
verify that this field is being set correctly?

cheers,
pl