เพิ่มความสามารถในการดีบักแบบทีละขั้นตอนและความสามารถในการนำทางของสแต็กเพื่อแงะโดยใช้ Byebug
หากต้องการใช้ให้เรียกแงะตามปกติ ไม่จำเป็นต้องเริ่มต้นสคริปต์หรือแอพของคุณแตกต่างกัน การดำเนินการจะหยุดในคำสั่งแรกหลังจาก binding.pry
ของคุณ
def some_method
puts 'Hello World' # Run 'step' in the console to move here
end
binding . pry
some_method # Execution will stop here.
puts 'Goodbye World' # Run 'next' in the console to move here.
MRI 2.4.0 หรือสูงกว่า
เพิ่ม
gem 'pry-byebug'
ไปยัง gemfile ของคุณและวิ่ง
bundle install
ตรวจสอบให้แน่ใจว่าคุณรวมอัญมณีทั่วโลกหรือใน :test
หากคุณวางแผนที่จะใช้เพื่อแก้ไขข้อบกพร่องการทดสอบของคุณ!
BREAK: จัดการจุดพัก
ขั้นตอน: ขั้นตอนการดำเนินการในบรรทัดหรือวิธีการถัดไป ใช้อาร์กิวเมนต์ตัวเลขเสริมเพื่อก้าวหลายครั้ง
ถัดไป: ก้าวข้ามไปยังบรรทัดถัดไปภายในเฟรมเดียวกัน นอกจากนี้ยังใช้อาร์กิวเมนต์ตัวเลขที่เป็นตัวเลือกไปยังหลายบรรทัด
เสร็จสิ้น: ดำเนินการจนกว่าจะส่งคืนเฟรมสแต็กปัจจุบัน
ดำเนินการต่อ: ดำเนินการโปรแกรมดำเนินการต่อและสิ้นสุดเซสชันแงะ
Backtrace: แสดงสแต็กปัจจุบัน คุณสามารถใช้ตัวเลขทางด้านซ้ายด้วยคำสั่ง frame
เพื่อนำทางสแต็ก
ขึ้น: เลื่อนเฟรมสแต็กขึ้น ใช้อาร์กิวเมนต์ตัวเลขเสริมเพื่อย้ายหลายเฟรม
ลง: เลื่อนเฟรมสแต็กลง ใช้อาร์กิวเมนต์ตัวเลขเสริมเพื่อย้ายหลายเฟรม
เฟรม: ย้ายไปยังเฟรมเฉพาะ เรียกว่าไม่มีอาร์กิวเมนต์จะแสดงเฟรมปัจจุบัน
หากคุณมาจาก Byebug หรือจากรุ่น Pry-Pyebug ก่อนหน้า 3.0 คุณอาจขาด 'n', 's', 'C' และ 'F' นามแฝงสำหรับคำสั่งการก้าว นามแฝงเหล่านี้ถูกลบออกโดยค่าเริ่มต้นเนื่องจากมักจะขัดแย้งกับชื่อตัวแปรรอยขีดข่วน แต่มันง่ายมากที่จะเปิดใช้งานใหม่หากคุณยังต้องการให้เพิ่มทางลัดต่อไปนี้ในไฟล์ ~/.pryrc
ของคุณ:
if defined? ( PryByebug )
Pry . commands . alias_command 'c' , 'continue'
Pry . commands . alias_command 's' , 'step'
Pry . commands . alias_command 'n' , 'next'
Pry . commands . alias_command 'f' , 'finish'
end
นอกจากนี้คุณอาจพบว่ามีประโยชน์เช่นกันการทำซ้ำคำสั่งสุดท้ายโดยเพียงกดปุ่ม Enter
(เช่น step
หรือ next
) เพื่อให้ได้สิ่งนั้นเพิ่มสิ่งนี้ลงในไฟล์ ~/.pryrc
ของคุณ:
# Hit Enter to repeat last command
Pry :: Commands . command /^$/ , "repeat last command" do
pry_instance . run_command Pry . history . to_a . last
end
คุณสามารถตั้งค่าและปรับจุดพักได้โดยตรงจากเซสชันแงะโดยใช้คำสั่ง break
:
BREAK: ตั้งค่าเบรกพอยต์ใหม่จากหมายเลขบรรทัดในไฟล์ปัจจุบันไฟล์และหมายเลขบรรทัดหรือวิธีการ ผ่านนิพจน์เสริมเพื่อสร้างจุดพักที่มีเงื่อนไข แก้ไขจุดพักที่มีอยู่ผ่านธงต่างๆ
ตัวอย่าง:
break SomeClass #run # Break at the start of `SomeClass#run`.
break Foo #bar if baz? # Break at `Foo#bar` only if `baz?`.
break app / models / user . rb : 15 # Break at line 15 in user.rb.
break 14 # Break at line 14 in the current file.
break -- condition 4 x > 2 # Change condition on breakpoint #4 to 'x > 2'.
break -- condition 3 # Remove the condition on breakpoint #3.
break -- delete 5 # Delete breakpoint #5.
break -- disable - all # Disable all breakpoints.
break # List all breakpoints.
break -- show 2 # Show details about breakpoint #2.
Type break --help
จากเซสชันแงะเพื่อดูตัวเลือกที่มีอยู่ทั้งหมด
โปรดทราบว่าทางเลือกทั้งหมดที่นี่ไม่สอดคล้องกับ Pry-Byebug หากแพลตฟอร์มของคุณได้รับการสนับสนุนโดย Pry-Pyebug คุณควรลบอัญมณีใด ๆ ที่กล่าวถึงที่นี่หากมีอยู่ใน Gemfile ของคุณ
PRY-DEBUGGER: ให้การดีบักทีละขั้นตอนสำหรับ MRI 1.9.3 หรือทับทิมที่เก่ากว่า หากคุณยังคงใช้สิ่งเหล่านั้นและต้องการดีบักเกอร์ทีละขั้นตอนเพื่อช่วยในการอัพเกรดการแอบแฝงอาจมีประโยชน์
PRY-STACK_EXPLORER: ให้ความสามารถในการนำทางของสแต็กสำหรับ MRI 1.9.3 หรือทับทิมเก่า หากคุณยังคงใช้สิ่งเหล่านั้นและจำเป็นต้องนำทางสแต็กของคุณเพื่อช่วยในการอัพเกรด Pry-Stack_explorer สามารถมีประโยชน์ได้
PRY-NAV: ให้การดีบักทีละขั้นตอนสำหรับ JRuby
ดูการเริ่มต้นกับการพัฒนา
สมัครสมาชิก TideLift เพื่อให้แน่ใจว่า Pry-Pyebug ยังคงรักษาไว้อย่างแข็งขันและในเวลาเดียวกันได้รับการรับรองการออกใบอนุญาตและการแจ้งเตือนความปลอดภัยในเวลาที่เหมาะสมสำหรับการพึ่งพาโอเพ่นซอร์สของคุณ
นอกจากนี้คุณยังสามารถช่วย pry-byebug
ได้ด้วยการทิ้งเคล็ดลับเล็ก ๆ (หรือใหญ่) ผ่าน Liberapay
โปรดใช้ผู้ติดต่อ TideLift Security เพื่อรายงานช่องโหว่ด้านความปลอดภัย TideLift จะประสานงานการแก้ไขและการเปิดเผย
ยินดีต้อนรับแพตช์และรายงานข้อผิดพลาด