Debug flash ด้วย command-line

Comments Off

ช่วงหลังต้องทำทั้งฝั่งเซิร์ฟเวอร์ที่เป็นจาวากับ Flex พอเปิด IDE สองตัวก็ทำให้รู้ว่าแรม 2 GB ที่มีอยู่มันช่างน้อยเสียนี่กระไร จะเพิ่มแรมแบบไม่เสี่ยงก็แพงชิบหาย(DDR3 4 GB Apple ขายหมื่นกว่าบาท -_-!) จะเพิ่มเองโดยไปหาแรมในท้องตลาดก็ยังไม่กล้า เมื่อวานเลยหาวิธีแก้ด้วยการเขียน Flex แบบดิบๆ ด้วย IDE พื้นบ้าน TextMate กับ compile และ debug ผ่าน command line เอา วันนี้ก็เลยมาจดกันลืมเช่นเคย
* Flash กับ AIR ใช้ตัว debug คนละตัว ถ้าจะ debug AIR ต้องใช้ adl แต่ตอนนี้จะเขียนถึงแค่ fdb เพราะยังใช้ adl ไม่ค่อยคล่อง(เหมือนมันจะใช้งานได้ไม่เหมือน fdb ด้วยอ่ะ ไม่มีให้ใส่ breakpoint หรือ หยุดในจุดที่ค้างได้เลยอ่ะ)

  1. เริ่มจากดาวโหลด Adobe Flex SDK มาก่อน แต่ถ้าใครติด Adobe Flex Builder อยู่แล้วก็ไม่ต้องโหลดมาใหม่ มันแถมมาให้ด้วยแล้ว จากนั้นตัว debug จะอยู่ที่ “/path/to/sdk/bin/fdb”
  2. หลังจากเข้าโปรแกรม เมื่อจะ debug flash ที่เว็บไหนใช้คำสั่ง run url เช่น

    (fdb) run http://localhost

    โปรแกรมจะเปิดหน้าต่าง browser ให้พร้อมกับเปิดเว็บที่จะ debug จากนั้นมันจะหยุดให้ก่อนรอเราใส่ breakpoint แล้วสั่ง continue

  3. เวลาใส่ breakpoint ใช้คำสั่ง break filename:line เช่น ต้องการใส่ breakpoint ที่ไฟล์ Main.mxml บรรทัดที่ 10 ก็ต้องใส่เป็น

    (fdb) break Main.mxml:10

    จากนั้นเมื่อโปรแกรมทำงานไปจนถึงตำแหน่งที่ breakpoint อยู่มันจะหยุดแล้วแสดง prompt รอคำสั่งต่อไป

  4. หากต้องการยกเลิก breakpoint ใช้คำสั่ง clear filename:line เหมือนกับ break แต่ถ้าต้องการ clear breakpoint ปัจจุบันที่หยุดอยู่ สามารถพิมพ์แค่ clear เฉยๆ ก็ได้เช่นเดียวกับ break
  5. หากต้องการดูว่าตอนนี้ทำงานอยู่ถึงจุดไหน หรือเรามาหยุดที่ไหนใช้คำสั่ง cf
  6. คำสั่งที่ใช้สำหรับควบคุมพวก step in, step out, next step เท่าที่รู้มีอยู่ 2 อย่างคือ

    1. step ไว้ใช้เลื่อนไปทำงานยังบรรทัดถัดไป
    2. finish เหมือน step out คือทำงานจนเจอ return
  7. หากโปรแกรมทำงานอยู่แล้วไม่หยุดซักทีเหมือนค้าง สามารถกด enter เพื่อจะบังคับให้มันหยุดได้ และหากต้องการหยุดโปรแกรมสามารถใช้คำสั่ง kill เพื่อบอกว่าหยุดการ debug เว็บนี้

จริงๆ ยังมีคำสั่งอื่นอีกมาก แต่เมื่อวานลองแค่นี้แหละ พอแก่การทำงานและ ใช้คู่กับ ant เพื่อ build flash นี่สะดวกสุดๆ ประหยัดแรมไปได้มากทีเดียว เหลือแต่ adl นี่แหละ ที่ยังงงๆ อยู่ว่าจะใช้คู่กับ fdb ยังไง สงสัยต้องไปหาลองเพิ่มเติม หรือไม่ก็คงเพราะอ่านเอกสารของ Adobe ไม่ละเอียด ไว้ debug ได้เมื่อไหร่แล้วจะมาเขียนอีกที

Comments are closed.