1

I am using IDA 7.5 and Android Emulator ( I tried many version of emulator, like BlueStack etc) trying to debug a native code inside a apk (.so file ).

Launch apk, IDA select remote linux debugger ( most of Android Emulator are x86 image. ), attach to process

Let's say there's two threads that are about to execute to the address of 0x123.

And I set a breakpoint in 0x123, click execute, thread A hit breakpoint as expected. ( its eip shows 0x123 ). But switch to thread B I found that it is stop at 0x124 ( it's eip shows 0x124 ). And if I trying to continue executing thread B, IDA report thread B receiving SIGTRAP at 0x124.

AFAIK, IDA debug a program by inserting a int 3 instruction. But somehow thread B execute report SIGTRAP after executing int 3.


At this point I thought it maybe some strange behavior of Android Emulator. So I tried using GDBSERVER + GDB to reproduce this situation. But every thing works fine.
Then I thought it maybe some issue with IDA's remote linux debugger, so I select IDA's remote gdb debugger instead.

But the same issue occur to me.


I also tried IDA's remote debugger with real device and nothing went wrong


Is there anyone familiar with IDA's debugger implementation that can give me some advices. plz.

0 Answers0