นี่คือคำสั่ง bashdb ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
bashdb - สคริปต์ดีบักเกอร์ทุบตี
เรื่องย่อ
ทุบตี [ตัวเลือก- ชื่อสคริปต์ [ต้นฉบับ ตัวเลือก]
ทุบตี [ตัวเลือก] -ค การดำเนินการสตริง
ทุบตี --ดีบักเกอร์ [bash-ตัวเลือก... ] ชื่อสคริปต์ [ต้นฉบับ ตัวเลือก]
DESCRIPTION
"bashdb" เป็นสคริปต์ทุบตีที่จัดเรียงสคริปต์ทุบตีอื่นที่จะดีบั๊ก NS
ดีบักเกอร์มีส่วนต่อประสานคำสั่งที่คล้ายกันเช่น จีดีบี(1)
วิธีที่สคริปต์นี้จัดการการดีบักให้เกิดขึ้นคือการรวม (หรือ "แหล่งที่มา"-ing จริง ๆ )
รหัสสนับสนุนการดีบักบางส่วนแล้วจัดหาสคริปต์หรือสตริงคำสั่งที่กำหนด
ปัญหาหนึ่งในการจัดหาสคริปต์ดีบั๊กคือชื่อโปรแกรมที่จัดเก็บใน $0 จะเป็น
"bashdb" แทนที่จะเป็นชื่อของสคริปต์ที่จะดีบั๊ก สคริปต์ดีบั๊กจะ
ปรากฏใน call stack ไม่ใช่รายการด้านบน แต่เป็นรายการด้านล่าง "bashdb" ถ้านี่คือของ
กังวล ใช้แบบฟอร์มสุดท้ายที่ระบุข้างต้น "bash --debugger" ชื่อสคริปต์ [ตัวเลือกสคริปต์].
หากคุณใช้สคริปต์ bashdb และต้องส่งตัวเลือกไปยังสคริปต์เพื่อแก้ไขจุดบกพร่อง ให้เพิ่ม "--"
ก่อนชื่อสคริปต์ นั่นจะบอก bashdb ว่าอย่าพยายามประมวลผลตัวเลือกเพิ่มเติมใด ๆ
ดูคู่มืออ้างอิงhttp://bashdb.sourceforge.net/bashdb.html> วิธีการโทร
ดีบักเกอร์จากภายในโปรแกรมของคุณหรือจัดให้มีการเรียกดีบักเกอร์เมื่อคุณ
โปรแกรมส่งสัญญาณ
OPTIONS
-h | --ช่วย
พิมพ์ข้อความการใช้งานเกี่ยวกับข้อผิดพลาดมาตรฐานและออกด้วยรหัสส่งคืน 100
-A | --คำอธิบายประกอบ ระดับ
ตั้งค่าเพื่อส่งออกข้อมูลสแต็กและสถานะเพิ่มเติม ซึ่งช่วยให้ฟรอนต์เอนด์เช่น
emacs เพื่อติดตามสิ่งที่เกิดขึ้นโดยไม่ต้องลงคะแนน
สิ่งนี้จำเป็นสำหรับการทดสอบการถดถอย การใช้ตัวเลือกนี้เทียบเท่ากับการออก:
ตั้งค่าคำอธิบายประกอบ LEVEL
ภายในดีบักเกอร์
-B | --ชื่อฐาน
ในตำแหน่งที่ชื่อไฟล์ปรากฏในเอาต์พุตดีบักเกอร์ ให้ระบุเฉพาะชื่อฐานเท่านั้น
สิ่งนี้จำเป็นสำหรับการทดสอบการถดถอย การใช้ตัวเลือกนี้เทียบเท่ากับการออก:
ตั้งชื่อฐานบน
ภายในดีบักเกอร์
-n | nx
โดยปกติดีบักเกอร์จะอ่านคำสั่งดีบักเกอร์ใน "~/.bashdbinit" ถ้าไฟล์นั้น
มีอยู่ก่อนที่จะยอมรับการโต้ตอบกับผู้ใช้ ".basdbinit" คล้ายกับ Perl's
".perldb" หรือ ".gdbinit" ของ GNU gdb: ผู้ใช้อาจต้องการสร้างโปรไฟล์ดีบักเกอร์ดังกล่าว
เพื่อเพิ่มการปรับแต่งเฉพาะผู้ใช้ที่หลากหลาย
การใช้ตัวเลือก "-n" ไฟล์เริ่มต้นนี้จะไม่ถูกอ่าน สิ่งนี้มีประโยชน์ใน
การทดสอบการถดถอยหรือในการติดตามปัญหากับโปรไฟล์ ".bashdbinit"
-c คำสั่งสตริง
แทนที่จะระบุชื่อไฟล์สคริปต์ เราสามารถกำหนดสตริงการดำเนินการที่
จะถูกดีบั๊ก ใช้ตัวเลือกนี้เพื่อทำเช่นนั้น
หากคุณเรียกใช้ดีบักเกอร์ผ่าน "bash --debugger" ชื่อไฟล์ที่จะปรากฏใน
รายชื่อแหล่งที่มาหรือในการติดตามสแต็กการโทรจะเป็นชื่อปลอม *BOGUS*
-q | --เงียบ
ห้ามพิมพ์เวอร์ชันเบื้องต้นและข้อมูลลิขสิทธิ์ สิ่งนี้มีประโยชน์อีกครั้งใน
การทดสอบการถดถอยที่เราไม่ต้องการรวมวันที่ลิขสิทธิ์ที่เปลี่ยนแปลงได้ใน
การจับคู่การทดสอบการถดถอย
-x ดีบักเกอร์-cmdfile
รันคำสั่งดีบักเกอร์ ดีบักเกอร์-cmdfile ก่อนยอมรับการป้อนข้อมูลของผู้ใช้ เหล่านี้
คำสั่งจะถูกอ่านหลังจากคำสั่ง ".bashdbinit" ใดๆ มีประโยชน์อีกแล้ว
รันสคริปต์ดีบักการทดสอบการถดถอย
-L | --ห้องสมุด ดีบักเกอร์ไลบรารี
ดีบักเกอร์ต้องการแหล่งที่มาหรือรวมฟังก์ชันจำนวนหนึ่งและสิ่งเหล่านี้อยู่ในa
ห้องสมุด. หากตัวเลือกนี้ไม่ได้รับตำแหน่งเริ่มต้นของไลบรารีจะสัมพันธ์กับ
สคริปต์ bashdb ที่ติดตั้ง: "../lib/bashdb"
-T | --อุณหภูมิ ไดเร็กทอรีไฟล์ชั่วคราว
ดีบักเกอร์ต้องใช้ที่เก็บข้อมูลระบบไฟล์ชั่วคราวบางส่วนเพื่อบันทึกถาวร
ข้อมูลใน subshell return หรือเพื่อประเมินนิพจน์ NS
ไดเรกทอรีเริ่มต้นคือ "/ Tmp" แต่คุณสามารถใช้ตัวเลือกนี้เพื่อตั้งค่าไดเร็กทอรี where
ไฟล์ชั่วคราวของดีบักเกอร์จะถูกสร้างขึ้น
-t | --tty tty-ชื่อ
เอาต์พุตดีบักเกอร์มักจะไปที่เทอร์มินัลมากกว่า STDOUT ซึ่งดีบั๊ก
โปรแกรมอาจใช้ การหาค่า tty หรือ pseudo-tty ทำได้ตามปกติ
โดยอัตโนมัติ อย่างไรก็ตาม หากคุณต้องการควบคุมว่าจะให้เอาต์พุตดีบักเกอร์ไปที่ใด ให้ใช้สิ่งนี้
ตัวเลือก
หากคุณต้องการให้เอาต์พุตไปที่ STDOUT ให้ใช้ &1 หมายเหตุ: '&' อาจต้องหลีกเลี่ยงหรือ
อ้างเพื่อหลีกเลี่ยงการตีความเปลือกด้วยการฟอร์ก
-V | --รุ่น
แสดงหมายเลขรุ่นและไม่รับประกัน และออกพร้อมรหัสส่งคืน 1
-X | --ติดตาม
คล้ายกับการติดตามบรรทัด ""set -x"" ยกเว้นว่าโดยค่าเริ่มต้นตำแหน่งของแต่ละบรรทัด
พิมพ์ระดับ bash และระดับ subshell คุณอาจจะได้รับบางสิ่งบางอย่าง
ใกล้เคียงกันถ้าคุณตั้งค่า "PS4" ดังนี้
ส่งออก PS4='(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]}\n'
ตรงกันข้ามกับการติดตาม ""set -x"" การเยื้องของโปรแกรมดั้งเดิมก็เช่นกัน
เก็บรักษาไว้ในเอาต์พุตต้นทาง และถ้าคุณขัดจังหวะโปรแกรมด้วยการพัก (a
สัญญาณ "SIGINT") คุณจะเข้าสู่โปรแกรมดีบั๊ก (สมมติว่าโปรแกรมของคุณไม่ดักจับ
"ลงนาม")
ใช้ bashdb ออนไลน์โดยใช้บริการ onworks.net
