คุณแตะ Connect โปรไฟล์หมุนหนึ่งวินาที แล้วไคลเอนต์รายงานว่าการเชื่อมต่อขาด ทีมสนับสนุนขอบันทึก คุณแนบภาพหน้าจอ และเธรดหยุดสองวันเพราะไม่มีใครบอกได้ว่าส่วนใดของแฮนด์เชกยอมแพ้ รายงานที่สร้างรอบความพยายามครั้งเดียว พร้อมหน้าต่างเวลาที่แคบและขั้นตอนสุดท้ายที่เสร็จสิ้น จะทำให้ตั๋วเดินหน้าได้ในรอบเดียว ทางเลือกอื่นคือบันทึกโทรศัพท์ทั้งวัน มักให้ฝ่ายตรงข้ามมีที่ให้ดูมากขึ้น

โทรศัพท์สองเครื่องบนเกตเวย์เดียวกันอาจทำงานต่างกันได้ เพราะโปรโตคอล ที่เก็บใบรับรอง วิธีการพิสูจน์ตัวตน หรือนโยบายทราฟฟิกอาจไม่ตรงกัน ข้อความว่ามันใช้ได้บนโทรศัพท์ของฉันเป็นจุดเริ่มต้นของการเปรียบเทียบ ไม่ใช่หลักฐานของความล้มเหลวของ Android

เก็บความพยายามครั้งเดียวแทนประวัติทั้งวัน

จดสภาพแวดล้อมก่อนทำซ้ำสิ่งใด: เวอร์ชัน Android ผู้ผลิตและรุ่น ชื่อและเวอร์ชันของไคลเอนต์ โปรไฟล์ที่เลือก เครือข่ายที่เชื่อมต่อ และเวลานาฬิกาพร้อมเขตเวลา ฉันยังบันทึกด้วยว่าตัวประหยัดแบตเตอรี่หรือ Data Saver เปิดอยู่หรือไม่ เพราะทั้งสองอย่างเปลี่ยนสิ่งที่ไคลเอนต์ทำได้เมื่อหน้าจอดับ

จากนั้นตัดสินว่าคุณกำลังดูผลลัพธ์ใดในห้าอย่างจริง ๆ พรอมต์ความยินยอมหรือสิทธิ์ไม่เคยเสร็จสิ้น ปลายทางเข้าถึงไม่ได้เลย การพิสูจน์ตัวตนถูกปฏิเสธ การตั้งค่าอินเทอร์เฟซล้มเหลวหลังเข้าสู่ระบบสำเร็จ หรืออุโมงค์ขึ้นมาแต่ทรัพยากรหนึ่งยังเข้าถึงไม่ได้ แต่ละอย่างมีเจ้าของและวิธีแก้ต่างกัน และชุดที่ผสมกันจะได้คำตอบให้ลองใหม่ การเดาระหว่างกันคือสิ่งที่เปลี่ยนตั๋วหนึ่งชั่วโมงให้เป็นจดหมายหนึ่งสัปดาห์

การเปลี่ยนสถานะก็สำคัญ หากความล้มเหลวปรากฏเฉพาะหลังล็อกหน้าจอหรือหลังเปลี่ยนจาก Wi-Fi เป็นข้อมูลมือถือ ให้เขียนไว้ในบรรทัดแรกของตั๋วและบันทึกนาทีที่เกิดขึ้น

ส่งออกบันทึกของไคลเอนต์เองก่อน

ไฟล์แนบแรกควรมาจากแอปไม่ใช่จากระบบปฏิบัติการ ไคลเอนต์ส่วนใหญ่มีส่งออกบันทึกวินิจฉัยหรือบันทึกการเชื่อมต่อในการตั้งค่า บางครั้งซ่อนอยู่หลังการกดค้างที่สตริงเวอร์ชัน และการส่งออกนั้นเข้าใจเครื่องสถานะของตัวเองอยู่แล้ว ใช้ตามที่ออกมาแทนการพิมพ์บรรทัดที่น่าสนใจใหม่ลงในเนื้อตั๋ว

แนบข้อผิดพลาดแรกและเหตุการณ์ก่อนหน้านั้น ไม่ใช่แค่บรรทัดตัดการเชื่อมต่อสุดท้าย หางที่สะอาดมักหมายความว่าความล้มเหลวจริงเกิดขึ้นก่อนหน้านี้: ห่วงโซ่ใบรับรองที่ไม่ผ่านการตรวจสอบ ชื่อที่ถูกแก้ไขในที่ที่ไม่คาดคิด หรืออินเทอร์เฟซที่ไม่เคยถูกกำหนดค่า

เพิ่ม logcat เฉพาะคำถามที่คุณตั้งชื่อได้

โปรแกรมจำลองเทอร์มินัลบนโทรศัพท์ไม่ใช่ตัวบันทึกของระบบ Android บันทึกบัฟเฟอร์ของตน เป็นสตรีมวงกลมแยกกันที่เฉพาะโปรเซสที่มีสิทธิพิเศษเท่านั้นจึงอ่านได้ทั้งหมด ดังนั้นแอปธรรมดาจึงเห็นเอาต์พุตของตัวเองบวกกับส่วนที่จำกัด และข้อความว่า logcat ว่างเปล่าพิสูจน์ได้น้อยมากเกี่ยวกับสิ่งที่แพลตฟอร์มบันทึกไว้

เส้นทางที่รองรับคือเซสชัน ADB ที่ได้รับอนุญาตจากคอมพิวเตอร์ที่คุณควบคุม เปิดตัวเลือกนักพัฒนาและการดีบัก USB เชื่อมต่อสาย และยอมรับกล่องโต้ตอบลายนิ้วมือ RSA บนอุปกรณ์ หากพรอมต์นั้นถูกปิด ทุกคำสั่งถัดไปจะล้มเหลวด้วย unauthorized และไม่มีการเก็บข้อมูลใดเริ่มต้น

ยืนยันว่าอุปกรณ์อยู่ที่นั่นจริงก่อนลงเวลาในการเก็บข้อมูล adb devices ควรพิมพ์หมายเลขซีเรียลตามด้วยคำว่า device และสิ่งใดที่แสดง offline หรือ unauthorized ต้องจัดการสาย พรอมต์ หรือไดรเวอร์ก่อน

เมื่อปรากฏในรายการ ให้เริ่มเก็บข้อมูลสองสามวินาทีก่อนแตะ Connect และหยุดทันทีหลังจากไคลเอนต์ยอมแพ้ การเก็บสดที่เริ่มอย่างตั้งใจดีกว่าการถ่ายข้อมูลที่ทำยี่สิบนาทีให้หลัง เพราะบัฟเฟอร์วงกลมหมุนไปแล้วและบรรทัดแรก ๆ ที่คุณต้องการอาจหายไป:

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

กรองตามเวลาและแท็กแทนคำว่า VPN

การค้นหา vpn ในบันทึกเป็นวิธีที่เร็วที่สุดที่จะสูญเสียบรรทัดที่อธิบายความล้มเหลว การตรวจสอบใบรับรอง การหยุดทำงานของโปรเซส และการเปลี่ยนแปลงการเชื่อมต่อถูกบันทึกภายใต้แท็กที่ไม่เคยกล่าวถึง VPN ดังนั้นตัวกรองคำสำคัญจึงเก็บเสียงรบกวนและทิ้งหลักฐาน

จำกัดหน้าต่างก่อน แล้วจึงลำดับความสำคัญ แล้วจึงแท็ก เมื่อต้องการเฉพาะสิ่งที่เกิดขึ้นหลังช่วงเวลาที่รู้ adb logcat -v threadtime -t '11-03 20:14:00.000' จะเล่นหางล่าสุดจากจุดนั้นซ้ำ และรูปแบบ threadtime ทำให้การประทับเวลาสามารถเทียบกับไฟล์ส่งออกของไคลเอนต์เองได้

หากรู้จักแพ็กเกจของไคลเอนต์ ให้ติดตามโปรเซสของมันแทนการเดาแท็ก adb shell pidof com.vendor.client คืนค่า PID และ adb logcat --pid=1234 -v threadtime พิมพ์เฉพาะโปรเซสนั้น ขณะที่ adb logcat -g แสดงว่าบัฟเฟอร์แต่ละตัวมีพื้นที่เท่าใดก่อนเริ่มเขียนทับ

ซ่อนความลับ แล้วส่งมอบชุดเดียวที่สอดคล้องกัน

ก่อนที่สิ่งใดจะออกจากเครื่องของคุณ ให้ลบรหัสผ่าน โทเคน คีย์ส่วนตัว คุกกี้เซสชัน และตัวระบุอุปกรณ์แบบเต็ม เก็บรหัสข้อผิดพลาด ลำดับเหตุการณ์ และความสัมพันธ์ของที่อยู่ที่ทำให้ความล้มเหลวอ่านได้ เพราะบันทึกที่ทำความสะอาดเกินจุดนั้นไม่มีประโยชน์เท่ากับบันทึกที่ไม่เคยกรองเลย

จากนั้นส่งชุดเดียวแทนไฟล์แยกหลายไฟล์: ไฟล์ส่งออกของไคลเอนต์ หน้าต่าง ADB ที่ตั้งชื่อตามเวลาเริ่มและหยุด สรุปสองบรรทัดของขั้นตอนที่ล้มเหลว และบันทึกสภาพแวดล้อมจากด้านบนของรายการนี้ หากบางส่วนไม่สามารถเผยแพร่ต่อสาธารณะได้ ให้ใช้ช่องทางสนับสนุนส่วนตัวของผู้ให้บริการและระบุว่าไฟล์ใดต้องใช้ช่องทางนั้น

ก่อนส่ง ตรวจสอบสี่อย่าง ชุดนี้ครอบคลุมความพยายามครั้งเดียวไม่ใช่ทั้งบ่ายหรือไม่ การประทับเวลาของไคลเอนต์และระบบทับซ้อนกันหรือไม่ และยังมีโทเคน รหัสผ่าน หรือตัวระบุผู้สมัครสมาชิกแบบเต็มอยู่หรือไม่ แก้ไขจุดสุดท้ายนั้นก่อน จากนั้นแนบไฟล์กับตั๋วที่มีอยู่แทนการเปิดใหม่ เพื่อให้ผู้รับช่วงเก็บบริบทเดิมไว้

บทความที่เกี่ยวข้อง