นอกเหนือจากการเขียนโค้ดเกือบตลอดเวลาโปรแกรมเมอร์ใช้รหัสการดีบักเวลามาก มีการกล่าวว่ามันเป็นการดีบักรหัสหรือกำลังจะดีบั๊กรหัส -
วันนี้เราจะพูดคุยเกี่ยวกับเคล็ดลับสำหรับการดีบักรหัสและวิธีการค้นหาปัญหาอย่างรวดเร็วเมื่อใช้ Debuggers ที่ IDE จัดหาให้
เพื่อนที่เห็นสิ่งนี้อย่าคิดว่าฉันเป็นปาร์ตี้ชื่อทันที มาดูกันเถอะ หากคุณมีทักษะที่ดีกว่าโปรดฝากข้อความไว้
มาที่หัวข้อกันเถอะ
1 การดีบักมัลติเธรด
เพื่อนที่พัฒนาแอปพลิเคชันที่มีเกลียวมากเกินไปควรมีความเข้าใจ บางครั้งเพื่อที่จะสังเกตสถานะของตัวแปรต่าง ๆ ระหว่างหลายเธรดรวมถึงการได้มาของล็อคพวกเขาจะนึกถึงการเพิ่มจุดพักเพื่อแก้ไขข้อบกพร่องของรหัส
เมื่อเบรกพอยต์หยุดใน IDE คุณสามารถสลับไปยังเธรดอื่นและเรียกใช้รหัสอื่น ๆ โดยไม่ส่งผลกระทบต่อกัน แน่นอนว่ามีสวิตช์ที่นี่ซึ่งเปิดโดยค่าเริ่มต้นใน eclipse
อย่างไรก็ตามมันไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน INTELLIJ Idea กล่าวคือถ้าคุณเพิ่มจุดพักในรหัสในความคิดแม้ว่าเธรดหนึ่งจะหยุดลงเธรดอื่น ๆ ได้ดำเนินการแล้ว
หลังจากตั้งค่าการระงับเธรดให้เป็นโหมด Eclipse เช่นเดียวกับการดีบักของแอปพลิเคชันแบบมัลติเธรดสามารถเริ่มต้นได้
การตั้งค่าอย่างง่ายสามารถอยู่ที่จุดพักโดยตรงและเปลี่ยนการระงับเป็นเธรด
เปลี่ยนการตั้งค่าเริ่มต้นใน IDEA: สลับเป็นปุ่ม "เธรด" คลิกปุ่ม "สร้างค่าเริ่มต้น" ที่จะปรากฏขึ้น
หลังจากเธรดเสียคุณสามารถสลับผ่านหน้าต่างเธรดและทำงานต่อในเธรดอื่นต่อไป
เปลี่ยนที่นี่ใน Identlij Idea
เราเห็นว่าทั้งเธรดหลักและ pool-1-thread-1 อยู่ในสถานะที่กำลังทำงานอยู่และการสลับไปยังอย่างใดอย่างหนึ่งสามารถทำงานต่อไปได้
ในเวลานี้คุณสามารถเขียนแอปพลิเคชันแบบมัลติเธรดและจัดเก็บเนื้อหาในคอนเทนเนอร์ที่ไม่ปลอดภัยเช่น arrylist แล้วสังเกตว่าทำไมพวกเขาถึงเป็นด้าย-ไม่ปลอดภัยและปัญหาใดที่จะเกิดขึ้นซึ่งสดใสและสดใส
PS: ให้ฉันบอกคุณที่นี่นี่คือเหตุผลที่แนะนำให้ตั้งชื่อที่มีความหมายเมื่อสร้างเธรดอย่างน้อยชื่อที่เป็นที่รู้จัก มิฉะนั้นคุณไม่สามารถแยกแยะความแตกต่างของเธรดที่เป็นของคุณเองและเป็นปัญหาในการสลับ
2 back-execution
การดำเนินการย้อนหลังที่กล่าวถึงที่นี่คือบางครั้งเมื่อเราทำการดีบักรหัสแต่ละวิธีนั้นขี้เกียจและเข้าสู่การดีบักทีละขั้นตอน เมื่อคุณสังเกตการเปลี่ยนแปลงของค่าตัวแปรวิธีการบางอย่างจะไม่ติดตามและการเปลี่ยนแปลงค่าและคุณต้องทำอีกครั้ง
อาศัยฟังก์ชั่นของการดำเนินการย้อนหลังคุณสามารถย้อนกลับไปข้างหลังได้เช่นเดียวกับฟังก์ชั่นของการเสียใจกับหมากรุกเมื่อเล่นหมากรุก แน่นอนว่าชื่อของการดำเนินการด้านหลังนี้ได้รับการตั้งชื่อโดยตัวเองและเรียกว่า Drop Frame ใน IDE
ด้วยฟังก์ชั่นนี้หลังจากที่เราวางเฟรมปัจจุบันค่าตัวแปรที่เปลี่ยนแปลงจะไม่ถูกกู้คืน ตัวอย่างเช่นหากคุณส่งรายการไปยังเมธอดที่เรียกว่าปัจจุบันและเพิ่มเนื้อหาลงในรายการในวิธีการจากนั้นเมื่อวางไปยังสถานที่ที่มีการเรียกวิธีการรายการจะไม่กลับสู่สถานะก่อนหน้า
แต่เมื่อมีการเรียกวิธีการอีกครั้งคุณสามารถสังเกตได้เมื่อรายการเปลี่ยนไปอย่างน้อยคุณก็ไม่จำเป็นต้องเรียกใช้โปรแกรมอีกครั้ง คุณสามารถล่าถอยได้หากคุณไม่เห็นด้วย
3 จุดพักแบบมีเงื่อนไข
ในการดีบักรหัสคุณต้องเพิ่มจุดพักที่คุณต้องการสังเกตการเปลี่ยนแปลงจากนั้นดำเนินการอย่างรอบคอบทีละขั้นตอน
อย่างไรก็ตามหากอยู่ในลูปหรือหากมีการเรียกวิธีการหลายเธรดในเวลาเดียวกันคุณก็ก้าวลงอย่างระมัดระวังและพบว่าไม่มีเนื้อหาที่คุณสนใจและวิ่งลงมาจากจุดเริ่มต้นของลูป แต่หากยังไม่มีเนื้อหาคุณจะเริ่มอารมณ์เสีย
ในความเป็นจริงเมื่อเพิ่มจุดพักเราสามารถเพิ่มเงื่อนไขบางอย่างลงในเบรกพอยต์เพื่อให้จุดพักจะมีผลเฉพาะเมื่อตรงตามเงื่อนไขที่ระบุ
ในความคิด Intellij คลิกขวาที่จุดพักและกล่องเงื่อนไขในรูปด้านล่างจะปรากฏขึ้นเพียงเข้าสู่เงื่อนไขที่ระบุ
ด้วยจุดพักที่มีเงื่อนไขรหัสที่ไม่เกี่ยวข้องและไม่สนใจสามารถข้ามได้โดยตรง
รหัสชิ้นส่วน 4
ฉันไม่ได้คิดเกี่ยวกับชื่ออะไรที่จะแสดงสิ่งนี้ บางครั้งในระหว่างกระบวนการดีบักฉันต้องการสร้างความบันเทิงให้กับรหัสชิ้นส่วนที่เกี่ยวข้องกับสิ่งนี้ แต่ไม่ได้อยู่ในไฟล์ต้นฉบับเพื่อสังเกตเพื่อช่วยในการวิเคราะห์ปัญหา ณ จุดนี้คุณจะหยุดโปรแกรมเพิ่มรหัสและเรียกใช้อีกครั้ง?
มีฟังก์ชั่นในแนวคิดที่จะเรียกใช้งานตัวอย่างโค้ดซึ่งสามารถเรียกใช้รหัสที่คุณเขียนไว้ชั่วคราวภายในบริบทของรหัสปัจจุบัน
ตัวอย่างเช่นวิธีการปัจจุบันส่งผ่านในรายการ แต่วิธีนี้ไม่มีองค์ประกอบที่คุณต้องใช้ในเงื่อนไขที่ตามมา ในเวลานี้คุณสามารถใช้ฟังก์ชั่นของการดำเนินการรหัสชิ้นส่วนชั่วคราวและเพิ่มหนึ่งใน
โปรดทราบว่าในแนวคิด Intellij ปุ่มด้านบนเช่นเครื่องคิดเลขขนาดเล็กเป็นฟังก์ชั่นชั่วคราว หลังจากคลิกกล่องประเมินนิพจน์ (Ctrl+F8) ด้านล่างปุ่มจะปรากฏขึ้น ป้อนรหัสและคลิกประเมินที่มุมล่างขวา ค่าส่งคืนจะแสดงที่ผลลัพธ์
สิ่งนี้เทียบเท่ากับการเปลี่ยนเนื้อหาของตัวแปรชั่วคราว
จากนั้นคุณสามารถเรียกวิธีการของวัตถุดำเนินการฟังก์ชั่นรับค่าแอตทริบิวต์ ฯลฯ
5 ดูค่าการปรับเปลี่ยนตัวแปร
IDE แต่ละตัวมีหน้าต่างเพื่อสังเกตค่าตัวแปรบริบทปัจจุบันเมื่อทำการดีบักรหัส ในความเป็นจริงนอกเหนือจากการดูประเภทพื้นฐานที่ไม่ใช่รอบรองชนะเลิศสามารถแก้ไขได้โดยตรงที่นี่ ด้วยวิธีนี้หากมีการดำเนินการหลายลูปค่าที่คาดหวังสามารถกู้คืนได้ทุกครั้งและไม่จำเป็นต้องรีสตาร์ทโปรแกรม
รหัสทางลัดที่ใช้งานโดยอัตโนมัติ
| คีย์ทางลัด | อธิบาย |
|---|---|
| เสียงดัง | System.out.println (""); |
| PSVM | วิธีหลัก |
การตั้งค่าทั่วไป
คีย์ลัดที่ใช้กันทั่วไป
| คีย์ทางลัด | อธิบาย |
|---|---|
| Alt + Ctrl + S | เปิดการตั้งค่า |
| alt + ctrl + shift + s | Open Project Strutu |
| Alt + Enter | แก้ไขอย่างรวดเร็ว |
| Alt + / | เสร็จสิ้นคำอัตโนมัติ |
| Alt + แทรก | รหัสที่สร้างขึ้นโดยอัตโนมัติเช่น setter, getter, toString ฯลฯ |
| Alt + Shift + V | ย้ายสมาชิกของชั้นเรียนไปเรียนอื่น |
| ctrl + shift + f | รูปแบบรหัส |
| ctrl + shift + u | การสลับเคส |
| ctrl + shift + i | แสดงคำจำกัดความของรหัสตามบริบทปัจจุบันตัวอย่างเช่น: เมื่อเคอร์เซอร์หยุดใช้วิธีการนิยามของวิธีการจะแสดงในวิธี PopupView |
| ctrl + คลิก | ข้ามไปที่ซอร์สโค้ด |
| Shift + Shift | ค้นหาไฟล์ทั้งหมด |
| ctrl + e | เปิดรายการไฟล์ที่เข้าถึงล่าสุด |
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น