Lazarus

Programming => Operating Systems => Android => Topic started by: jmpessoa on January 21, 2021, 04:31:11 pm

Title: [LAMW] Debug Apk From IDE
Post by: jmpessoa on January 21, 2021, 04:31:11 pm
New!

"Debug Apk From IDE"  by  @leopreo

ref.

https://github.com/jmpessoa/lazandroidmodulewizard/blob/master/LAMW_DebugApkFromIDE.txt

Thanks to @leopreo!

PS. dependency/required package "LazDebuggerFpGdbmi"
Title: Re: [LAMW] Debug Apk From IDE
Post by: rsu333 on January 22, 2021, 04:29:44 pm
Thanks for your great job.
Title: Re: [LAMW] Debug Apk From IDE
Post by: rsu333 on January 24, 2021, 06:40:59 am
Kindly explain the importance of above method over previous  method of  debugging. I have try it on laz4and.
in another folder , girdle 6.>,  fetal at  build step.
You have also explain key store in debugging which I can't do easily .
Is there any google friendly debugging method ? Or can do any changes in debugging option ? Please   
Title: Re: [LAMW] Debug Apk From IDE
Post by: Segator on January 24, 2021, 02:34:09 pm
I think that you not need the keystore in debugging option, when the app work fine then you change from debugging to release and then use keystore.
Title: [LAMW] Debug Apk From IDE
Post by: Leopreo on January 26, 2021, 02:47:49 pm
26.01.2021: Add chipset ARMv7a+Soft and test it on AVD Android Emulator (Device Nexus 9 [5.1.1-API22]
Google APIs ARM (armeabi-v7a)), Setup in gdbmiserverdebuggerlamw.pas SIG33 & SIG35 to "nopass nostop noprint" (blocks real time events), add for localhost command "adb forward tcp:port tcp:port"

https://github.com/jmpessoa/lazandroidmodulewizard/blob/master/LAMW_DebugApkFromIDE.txt
Title: Re: [LAMW] Debug Apk From IDE
Post by: Segator on February 11, 2021, 04:39:36 pm
i can't find the ...android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-gdb.exe binary in that place exits other like:
Code: Pascal  [Select][+][-]
  1. arm-linux-androideabi-g++.exe
  2. arm-linux-androideabi-gcc.exe
  3. arm-linux-androideabi-gcc-4.9.exe
  4. arm-linux-androideabi-gcc-4.9.x.exe
  5. arm-linux-androideabi-gcc-ar.exe
  6. arm-linux-androideabi-gcc-nm.exe
  7. arm-linux-androideabi-gcc-ranlib.exe
  8. arm-linux-androideabi-gcov.exe
  9. arm-linux-androideabi-gcov-tool.exe
  10. arm-linux-androideabi-gprof.exe

but not gdb, what can i do?
Title: Re: [LAMW] Debug Apk From IDE
Post by: juank1971 on February 11, 2021, 05:01:48 pm
yes i have in
C:\LAMW\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-gdb.exe
donwload android-ndk-r10e again and uncompress
Title: Re: [LAMW] Debug Apk From IDE
Post by: juank1971 on February 11, 2021, 05:04:37 pm
this is
Title: Re: [LAMW] Debug Apk From IDE
Post by: Segator on February 12, 2021, 11:26:48 pm
thanks @juank1971 i will try it.
Title: Re: [LAMW] Debug Apk From IDE
Post by: Segator on February 17, 2021, 05:57:44 pm
i try other ndk version the file is not present, i try with the 64bits versions 16b and 18b, is only present in the 32 bits version or the 10e like the tutorial?
Title: Re: [LAMW] Debug Apk From IDE
Post by: Leopreo on February 18, 2021, 04:46:57 pm
32bit: android-ndk-r18b\prebuild\windows\bin\gdb.exe
64bit: android-ndk-r18b\prebuild\windows-x86_64\bin\gdb.exe
Title: Re: [LAMW] Debug Apk From IDE
Post by: Segator on February 19, 2021, 02:12:11 am
thanks @Leopreo i will try it.
Title: Re: [LAMW] Debug Apk From IDE
Post by: cappe on April 10, 2021, 09:27:40 am
Thanks for this implementation.

I wanted to ask if it is possible to debug also by launching the apk on a physical device. I tried, with emulator it works fine, but on a physical device it gives me this error:

Messaggi, suggerimenti: 2
Verbose: Selected chip architecture: armeabi-v7a
Verbose: Taking libraries from folder: C:\lamw\test\canccanc\AppLAMWProject2\libs\armeabi-v7a
Verbose: Found library: libcontrols.so
Note: Duplicate unit "controls" in "controls", orphaned ppu "C:\lamw\test\canccanc\AppLAMWProject2\obj\controls\controls.o"
Note: Duplicate unit "controls" in "LCLBase 2.0.0.4", ppu="C:\lamw\laz4android2.0.0\lcl\units\arm-android\controls.ppu", source="C:\lamw\laz4android2.0.0\lcl\controls.pp"
Compila il progetto, OS: android, CPU: arm, Destinazione: C:\lamw\test\canccanc\AppLAMWProject2\libs\armeabi-v7a\libcontrols.so: Successo
Building APK (Gradle)... : Successo
Starting APK (Gradle)... : Successo
 Get CPU Abilist: Successo
 Get Build Version Sdk: Successo
Scan org.lamw.applamwproject2 PID...: Successo
 Pull /system/bin/app_process32 to C:/lamw/test/canccanc/AppLAMWProject2/gdb: Successo
 Pull /system/bin/linker to C:/lamw/test/canccanc/AppLAMWProject2/gdb: Successo
 Pull /system/lib/libc.so to C:/lamw/test/canccanc/AppLAMWProject2/gdb: Successo
Adb forward tcp:2021 tcp:2021: Successo
2021
Start(run-as org.lamw.applamwproject2 lib/gdbserver --multi :2021): Codice di uscita 234, Errori: 1
run-as: Package 'org.lamw.applamwproject2' has corrupt installation
Panic: lo strumento ha terminato con codice di uscita 234. Usare il menu contestuale per maggiori informazioni.
Exception, Errori: 1
Fatal: [Exception] Failed: Cannot start(run-as org.lamw.applamwproject2 lib/gdbserver --multi :2021)


Is it possible to debug on a physical device?
Title: Re: [LAMW] Debug Apk From IDE
Post by: Leopreo on April 13, 2021, 08:21:14 am
Yes. It is possible.

1. Check device debug permissions
2. Android 8 (Android 8.1) has system bug - problem start gdbserver
3 Change NDK version (android-ndk-r10e tested)
Title: Re: [LAMW] Debug Apk From IDE
Post by: Tomi on April 16, 2021, 12:45:04 pm
Hello everybody!

Yesterday I installed some android packages into Lazarus based on this video: https://youtu.be/1BH460c9_Aw
Everything works, except that when I launch a new android project, Lazarus can't build APK, because of fpc.exe doesn't support arm-android (it is an error message).
What should I do? Maybe can I install arm-android with fpcupdeluxe program?
Title: Re: [LAMW] Debug Apk From IDE
Post by: rsu333 on April 18, 2021, 08:25:29 am
This is also good , example video ,But I suggest to upgrade it by LAMW manager.
Title: Re: [LAMW] Debug Apk From IDE
Post by: jluixjurado on September 27, 2022, 08:37:11 pm
Hi there!

I'm trying to debug from IDE but with not luck so far.

First of all, I'm using the ndk bundled with last version of LAMW (updated)

In that version, the gdb is in C:\lamw_manager\LAMW\sdk\ndk-bundle\prebuilt\windows-x86_64\bin\gdb.exe

I've followed the steps in LAMW_DebugApkFromIDE.txt to the 14th with success.

The Messages Window says:

     Listening on port 2021
     Remote debugging from host 127.0.0.1, port 57975 <--???
     Attached; pid = 20562

BUT, the app is frozen in my (real) device and, when setting breakpoints in any code line, the ? symbols appears (like not really connected)

I'm using Windows 10 btw.

Any idea would be greatly appreciated!
Title: Re: [LAMW] Debug Apk From IDE
Post by: jluixjurado on September 28, 2022, 08:48:44 am
Ok, I've downloaded the android-ndk-r10e package and it's working! Superb!
Title: Re: [LAMW] Debug Apk From IDE
Post by: iwizard on February 12, 2024, 02:52:24 pm
Does anyone use the latest version of lamw and newer NDK versions such as 19c and above? Did the experiment debug function succeed in the end?

I use the latest lamw version, tried 19c (32bit_win), 20b (32bit_win), 21e (32bit_win/64win_win) all failed, basically in the last step of attaching the process, you can attach the process pop-up window and you can select the current program to be debugged, but then it will be stuck, unable F9
Title: Re: [LAMW] Debug Apk From IDE
Post by: iwizard on February 14, 2024, 09:46:31 am
After a few days of trying, I think that the gdb program provided by ndk is incompatible with the relevant method implementation in TGDBMIDebugger in lazarus, search for alternatives on the Internet, and find the "GDB 7.4.1 for Android with NEON support" provided by the https://gnutoolchains.com/android/ website, use gdb, GDBserver replaces the program with the same name in ndk R19C (this GDB7.4.1 only supports ARM platform) and can be smoothly debugged on Android real machines! ;)
Title: Re: [LAMW] Debug Apk From IDE
Post by: maxerist on March 11, 2024, 02:07:58 pm
... and find the "GDB 7.4.1 for Android with NEON support" provided by the https://gnutoolchains.com/android/ website, use gdb, GDBserver replaces the program with the same name in ndk R19C (this GDB7.4.1 only supports ARM platform) and can be smoothly debugged on Android real machines! ;)

Many thanks for the info. I postponed the debug setup in my case until the moment it became essential to do. Side note: LAMW is a great tool, but when going advanced many small tasks/obstacles turns the development into a minefield :) Step-by-step debugging makes it much less painful.

More details for those who finds it still scary. I didn't believe but it worked.

This simple steps allowed step-by-step debugging on an external tablet. This particular working example was tested on Windows 7, Lazarus 2.2.2, Fpc 3.2.2 cross-compiled with FPCUPdeluxe for hardware floating point (VFPv3), LAMW 0.8.6 and an external android tablet. Happy debugging :)
Title: Re: [LAMW] Debug Apk From IDE
Post by: maxerist on March 13, 2024, 12:11:28 pm
It looks like if one wants to debug several projects while keeping the same Android session running on the device, there  might be obstacles to this. In my case I tried to switch from a current app I'm extending to an existing demo (com.example.appdemo1). After launching the first one once, the second one refused to debug with with the error "Fatal: [Exception] Failed: Cannot kill last gdbserver PID=..."

What the following inquiry showed is

So in order to debug a couple of android apps one has the following choices

Please let me know whether some other options or fixes are available.

Thanks


TinyPortal © 2005-2018