Jy tik op Connect, die profiel draai vir 'n oomblik, en die kliënt rapporteer ontkoppel. Ondersteuning vra vir logs, jy heg 'n skermskoot aan, en die draad lê twee dae stil omdat niemand kan sê watter deel van die handdruk tou opgegooi het nie. 'n Verslag wat om een poging gebou is, met 'n smal tydvenster en die laaste stadium wat voltooi is, skuif die kaartjie in een rondte vorentoe. Die alternatief, 'n volle dag se telefoonlogs, gee meestal vir die persoon aan die ander kant meer plekke om te kyk.

Twee telefone op dieselfde poort kan steeds anders optree, want die protokol, sertifikaatstoor, verifikasiemetode of verkeersbeleid stem dalk nie ooreen nie. “Dit werk op my iPhone” is 'n beginpunt vir vergelyking, nie bewyse oor 'n Android-fout nie.

Vang een poging eerder as 'n dag se geskiedenis

Skryf die omgewing neer voordat jy enigiets reproduseer: Android-weergawe, vervaardiger en model, kliëntnaam en weergawe, die profiel wat jy gekies het, die netwerk waaraan jy gekoppel is, en die kloktyd met sy tydsone. Ek let ook op of batterybesparing of Data Saver aan is, want albei verander wat die kliënt mag doen sodra die skerm afgaan.

Bepaal dan watter van vyf uitkomste jy werklik sien. Die toestemming- of magtigingsvenster voltooi nooit nie, die eindpunt is glad nie bereikbaar nie, verifikasie word verwerp, koppelvlakopstelling misluk ná 'n suksesvolle aanmelding, of die tonnel kom op en een spesifieke bron bly onbereikbaar. Elkeen het 'n ander eienaar en 'n ander oplossing, en 'n bundel wat hulle vermeng, kry 'n antwoord wat jou vra om weer te probeer. Om tussen hulle te raai is wat 'n kaartjie van 'n uur in 'n week se heen-en-weer verander.

Oorgange maak ook saak. As die fout net ná skermsluiting of ná 'n oorskakeling van Wi-Fi na mobiele data verskyn, sit dit in die eerste reël van die kaartjie en noem die minuut waarop dit gebeur het.

Voer eers die kliënt se eie log uit

Die eerste aanhangsel moet van die app kom, nie van die bedryfstelsel nie. Die meeste kliënte lewer 'n diagnostiese of verbindingslog-uitvoer in die instellings, soms agter 'n lang druk op die weergawestring, en daardie uitvoer verstaan reeds sy eie toestandmasjien. Gebruik dit soos dit uitkom eerder as om die interessante reëls in die kaartjie se liggaam oor te tik.

Heg die eerste fout aan en die gebeurtenisse net daarvoor, nie net die finale ontkoppel-reël nie. 'n Skoon stert beteken gewoonlik die werklike fout het vroeër gebeur: 'n sertifikaatketting wat nie wou valideer nie, 'n naam wat op 'n onverwagte plek opgelos het, of 'n koppelvlak wat nooit opgestel is nie.

Voeg logcat net by vir 'n vraag wat jy kan benoem

n Terminal-emulator op die foon is nie 'n stelsellogger nie. Android teken sy buffers aan as afsonderlike sirkelvormige strome wat net bevoorregte prosesse volledig kan lees. So 'n gewone app sien sy eie uitset plus 'n beperkte sny, en “ek het logcat geloop en dit was leeg” bewys baie min oor wat die platform opgeneem het.

Die ondersteunde pad is 'n gemagtigde ADB-sessie van 'n rekenaar wat jy beheer. Skakel ontwikkelaaropsies en USB-ontfouting aan, koppel die kabel, en aanvaar die RSA-vingerafdrukdialoog op die toestel; as daardie venster weggevee word, misluk elke latere opdrag met unauthorized en begin geen opname nie.

Bevestig die toestel is werklik daar voordat jy tyd in 'n opname belê. adb devices behoort die reeksnommer te druk, gevolg deur die woord device, en enigiets wat offline of unauthorized lees, het eers die kabel, die venster of die drywer nodig.

Sodra dit gelys is, begin opneem 'n paar sekondes voordat jy op Connect tik en stop net nadat die kliënt tou opgooi. 'n Lewende opname met 'n doelbewuste begin klop 'n dump wat twintig minute later geneem word, want die sirkelbuffers het reeds gedraai en die vroeë reëls wat jy nodig het, is dalk weg:

adb logcat -v threadtime -b main,system,crash > attempt.txt

Filtreer op tyd en etiket eerder as op die woord VPN

Om 'n opname vir “vpn” te deursoek is die vinnigste manier om die reël te verloor wat die fout verduidelik. Sertifikaatvalidering, prosesinkortings en verbindingsveranderings word onder etikette aangeteken wat nooit VPN noem nie, so 'n sleutelwoordfilter hou die geraas en gooi die bewyse weg.

Vernou eers die venster, dan die prioriteit, dan die etiket. Wanneer jy net nodig het wat ná 'n bekende oomblik gebeur het, speel adb logcat -v threadtime -t '11-03 20:14:00.000' die onlangse stert van daardie punt af oor, en die threadtime-formaat hou tydstempels vergelykbaar met die kliënt se eie uitvoer.

As jy die kliëntpakket ken, volg sy proses eerder as om etikette te raai. adb shell pidof com.vendor.client gee 'n PID terug en adb logcat --pid=1234 -v threadtime druk net daardie proses, terwyl adb logcat -g wys hoeveel ruimte elke buffer het voordat dit begin oorskryf.

Verwyder sensitiewe data, en lewer dan een samehangende bundel

Voordat enigiets jou masjien verlaat, verwyder wagwoorde, tekens, private sleutels, sessiekoekies en volledige toestelidentifiseerders. Hou die foutkodes, die volgorde van gebeure en die adresverwantskappe wat die fout leesbaar maak, want 'n opname wat verby daardie punt skoongemaak is, is net so nutteloos as een wat nooit gefiltreer is nie.

Stuur dan een bundel eerder as verskeie los lêers: die kliëntuitvoer, die ADB-venster met sy begin- en stoptyd, 'n tweereëlopsomming van die stadium wat misluk het, en die omgewingsnota van bo-aan hierdie lys. As 'n deel daarvan nie in die openbaar geplaas kan word nie, gebruik die verskaffer se private ondersteuningskanaal en sê watter lêer daardie kanaal nodig het.

Voordat jy stuur, kontroleer vier dinge. Dek die bundel een poging eerder as 'n hele middag? Oorvleuel die kliënt- en stelseltydstempels? En bevat dit steeds 'n teken, 'n wagwoord of 'n volledige intekenaaridentifiseerder? Maak daardie laaste punt eerste reg, en heg dan die lêers aan die bestaande kaartjie eerder as om 'n nuwe een oop te maak, sodat wie dit optel die vroeëre konteks behou.

Verwante artikels