Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Abstürze nach längerer Laufzeit (https://www.delphipraxis.net/209964-abstuerze-nach-laengerer-laufzeit.html)

zeras 13. Feb 2022 10:40

Abstürze nach längerer Laufzeit
 
Hallo,

ich habe eine APP, die 24/7 läuft. Nun berichtet ein Kunde, dass die APP nach längerer Laufzeit abstürzen würde.
In der Play Console finde ich bei Absturzdetails den Stacktrace.
Es scheint ja bei mehreren Geräten aufzutreten, da verschiedene Geräte angezeigt werden.
Aber kann man damit was anfangen?
Wie kann ich die Ursache finden?
Hier einige Infos zu den Abstürzen:

Code:
Absturz
Samsung Galaxy Tab A 10.1
Android 7.0 (SDK 24)
38.apk
vor 19 Tagen
pid: 0, tid: 0 >>> com.embarcadero.MeineApp <<<

backtrace:
  #00  pc 000000000004ad30  /system/lib/libc.so (tgkill+12)
  #00  pc 00000000000484c3  /system/lib/libc.so (pthread_kill+34)
  #00  pc 000000000001dd99  /system/lib/libc.so (raise+10)
  #00  pc 0000000000019521  /system/lib/libc.so (__libc_android_abort+34)
  #00  pc 0000000000017160  /system/lib/libc.so (abort+4)
  #00  pc 000000000031b7f9  /system/lib/libart.so (art::Runtime::Abort()+252)
  #00  pc 00000000000b4dcb /system/lib/libart.so (art::LogMessage::~LogMessage()+866)
  #00  pc 00000000001bcaa9  /system/lib/libart.so (art::IndirectReferenceTable::AbortIfNoCheckJNI()+84)
  #00  pc 000000000023de3f /system/lib/libart.so (art::IndirectReferenceTable::GetChecked(void*) const+498)
  #00  pc 000000000023b0f3  /system/lib/libart.so (art::JavaVMExt::DecodeWeakGlobal(art::Thread*, void*)+30)
  #00  pc 00000000003355a5  /system/lib/libart.so (art::Thread::DecodeJObject(_jobject*) const+164)
  #00  pc 00000000003173ff /system/lib/libart.so (art::ArgArray::BuildArgArrayFromJValues(art::ScopedObjectAccessAlreadyRunnable const&, art::mirror::Object*, jvalue*)+154)
  #00  pc 000000000031726f /system/lib/libart.so (art::InvokeWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+250)
  #00  pc 0000000000274f8b /system/lib/libart.so (art::JNI::CallStaticBooleanMethodA(_JNIEnv*, _jclass*, _jmethodID*, jvalue*)+426)
  #00  pc 00000000006a6773  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so (ExecJNI+394)
  #00  pc 0000000000db791b /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000dc3eb7  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000daa2b5  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000db2bdf /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000a91481  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000576205  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000566671  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 00000000006478d9  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 000000000064688f /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000a8c86b /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 00000000005663af /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 000000000056d0cd /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000ab16af /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 00000000005798a9  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 000000000057822d /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000db7829  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so (_NativeMain+148)
  #00  pc 0000000000800547  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 00000000008006c1  /data/app/com.embarcadero.MeineApp-1/lib/arm/libMeineApp.so
  #00  pc 0000000000047f93  /system/lib/libc.so (__pthread_start(void*)+22)
  #00  pc 000000000001a161  /system/lib/libc.so (__start_thread+6)
Code:
Absturz
Samsung Galaxy Tab S2
Android 7.0 (SDK 24)
71.aab
vor 5 Tagen
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.embarcadero.MeineApp <<<

backtrace:
  #00  pc 000000000006ba20  /system/lib64/libc.so (tgkill+8)
  #00  pc 0000000000068ea4  /system/lib64/libc.so (pthread_kill+64)
  #00  pc 0000000000024350  /system/lib64/libc.so (raise+24)
  #00  pc 000000000001cd6c /system/lib64/libc.so (abort+52)
  #00  pc 000000000042e5fc /system/lib64/libart.so (art::Runtime::Abort()+352)
  #00  pc 00000000000e4f2c /system/lib64/libart.so (art::LogMessage::~LogMessage()+1204)
  #00  pc 000000000024bb9c /system/lib64/libart.so (art::IndirectReferenceTable::Add(unsigned int, art::mirror::Object*)+472)
  #00  pc 00000000002ee0c0  /system/lib64/libart.so (art::JavaVMExt::AddGlobalRef(art::Thread*, art::mirror::Object*)+60)
  #00  pc 00000000003289ac /system/lib64/libart.so (art::JNI::NewGlobalRef(_JNIEnv*, _jobject*)+600)
  #00  pc 00000000012c21d8  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000012cd508  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000012c1c40  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so (ExecJNI+2504)
  #00  pc 0000000001b368c0  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001b2bcbc /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001b2811c /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001b2c720  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000016d3a14  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000016e3d58  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000016a30bc /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001b367d8  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001208d98  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 0000000001209a00  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000011eb830  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000012cd248  /data/app/com.embarcadero.MeineApp-2/lib/arm64/libMeineApp.so
  #00  pc 00000000005dd010  /data/app/com.embarcadero.MeineApp-2/oat/arm64/base.odex (offset 0x5cd000)

zeras 26. Feb 2022 07:36

AW: Abstürze nach längerer Laufzeit
 
Es kommt zu weiteren Abstürzen. Kann hier keiner einen Tipp geben, wie ich den Fehler finden kann?

Code:
Samsung Galaxy Tab A (2016)
Android 8.1 (SDK 27)

pid: 0, tid: 0 >>> com.embarcadero.MeineApp <<<

backtrace:
  #00  pc 000000000001a528  /system/lib/libc.so (abort+63)
  #00  pc 0000000000365cd3  /system/lib/libart.so (art::Runtime::Abort(char const*)+402)
  #00  pc 00000000004276e7  /system/lib/libart.so (android::base::LogMessage::~LogMessage()+454)
  #00  pc 00000000001d9e31  /system/lib/libart.so (art::IndirectReferenceTable::Add(art::IRTSegmentState, art::ObjPtr<art::mirror::Object>)+692)
  #00  pc 0000000000251f4d /system/lib/libart.so (art::JavaVMExt::AddGlobalRef(art::Thread*, art::ObjPtr<art::mirror::Object>)+36)
  #00  pc 0000000000283d6f /system/lib/libart.so (art::JNI::NewGlobalRef(_JNIEnv*, _jobject*)+386)
  #00  pc 0000000000707ed7  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000714295  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 000000000072ea95  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 00000000009796d9  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000ed8741  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000ed5997  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000ed9207  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000ae075f /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000aee8d9  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000ab4f99  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000edca5d /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000671ef3  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 000000000066a0db /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 000000000066aab3  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 00000000006518c9  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 0000000000711571  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/lib/arm/libMeineApp.so
  #00  pc 000000000001e131  /data/app/com.embarcadero.MeineApp-9rBjm_E3RE1me3GL0tjAyg==/oat/arm/base.odex (offset 0x1e000)

TurboMagic 27. Feb 2022 14:12

AW: Abstürze nach längerer Laufzeit
 
Die Frage wäre, was denn deie App so tut und ob du evtl. durch Einbau weiterer Logmeldungen noch näher herausfinden
kannst an welcher Stelle das abstürzt.

Loggen in einem FMX programm kannst du mittels

uses
FMX.Types;
begin
log.d('Mein text');

Das landet dann auch in dem Android Debug Log.

Falls hier keine weiteren hilfreichen Antworten kommen sollten kannst du dich auch mit einem offiziellen
Support Ticket an EMBT wenden, wenn du eine laufende Subskription hast. Manchmal kommt dazu tatsächlich was raus.
Ich meine damit übreigens nicht QP sondern das hier: https://www.embarcadero.com/de/support

Grüße
TurboMagic

TomyN 27. Feb 2022 15:48

AW: Abstürze nach längerer Laufzeit
 
Bei Abstürzen nach längerer Laufzeit sind meine Hauptverdächtigen
- Überlauf einer Variablen
- Energiesparmodus / Low Akku o.ä.

Tomy

zeras 27. Feb 2022 16:43

AW: Abstürze nach längerer Laufzeit
 
Zitat:

Zitat von TurboMagic (Beitrag 1502757)
Loggen in einem FMX programm kannst du mittels

uses
FMX.Types;
begin
log.d('Mein text');

Das landet dann auch in dem Android Debug Log.

Dies habe ich drin. Komme ich da auch an die Logs auch vom entferneten Tablett ran? Dort habe ich ja keinen Zugriff, da ich meine Kunden ja nicht kenne.

Zitat:

Zitat von TomyN (Beitrag 1502763)
Bei Abstürzen nach längerer Laufzeit sind meine Hauptverdächtigen
- Überlauf einer Variablen
- Energiesparmodus / Low Akku o.ä.

Energiesparmodus ist deaktiviert, soweit ich das vom Programm steuern kann. Der Bildschirmschoner wird deaktiviert.
Wegen des Überlaufes, ich habe auch ein Tablett, wo ich Zugriff habe. Dort passiert es aber nicht.

TurboMagic 27. Feb 2022 19:33

AW: Abstürze nach längerer Laufzeit
 
Ich glaube da kommst du nicht wirkliuch ran, das wird ja dauern überschrieben.
Da müsstest du wohl selber eine Dateilogging Funktion einbauen, samt Teilen oder Viewer...

Sinspin 28. Feb 2022 10:21

AW: Abstürze nach längerer Laufzeit
 
Code:
backtrace:
  #00  pc 000000000001a528  /system/lib/libc.so (abort+63)
  #00  pc 0000000000365cd3  /system/lib/libart.so (art::Runtime::Abort(char const*)+402)
  #00  pc 00000000004276e7  /system/lib/libart.so (android::base::LogMessage::~LogMessage()+454)
Ich habe hier so ein bisschen den Verdacht dass wir nicht den echten Fehler sehen, sondern einen Folgefehler. Es scheint ja aus LogMessage zu knallen.
Oder, die Funktion hat einen Parameter der genau dafür sorgt dass nach dem schreiben einer Message alles ein Ende findet.

zeras 13. Mär 2022 15:58

AW: Abstürze nach längerer Laufzeit
 
Danke für eure Hinweise.
Laut den Logs im Playstore sieht es offenbar so aus, als wenn die APP immer nach 5 Tagen abstürzt, nur beim letzten Mal waren es 7 Tage. Da hat man die APP vielleicht erst später wieder neu gestartet.
Sind aber bis jetzt Vermutungen. Auch hat das Tablett noch Android 7 drauf. Auf einem anderen Tablett läuft auch die APP und macht keine Probleme. Dort ist aber auch ein neueres Android drauf.

zeras 15. Mär 2022 18:53

AW: Abstürze nach längerer Laufzeit
 
Offenbar sind die Abstürze nicht alle 5, sondern alle 10 Tage.
Jetzt wollte ich ein Log einbauen, wo man die Startzeit der APP hinterlegt. Kann man auch noch bei einem Absturz in ein Log schreiben oder ist da sowieso schon alles "tot"?
So könnte ich vielleicht eher herausfinden, wo das Problem liegt.

QuickAndDirty 17. Mär 2022 13:12

AW: Abstürze nach längerer Laufzeit
 
Berücksichtigst du die Android Lifecycle events?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz