Debug – การ Run กับ Debug สิ่งนี้คืออะไร

โดยปกติแล้วพวกเราเหล่า Developer ที่ใช้  Visual Studio หลังจากเขียน Code เสร็จแล้วอยากจะดูผลของการทำงาน เราก็จะใช้ปุ่มสุดฮิต นั่นก็คือ กด F5…สิ่งนี้แหละคือการ Debug!..จบ

อ้าวยังครับ! มาดูกันต่อ
ตัวอย่างเช่นการเลือกเมนูข้างล่างหรือ F5 เนี่ยคือการ Start การ Debug แล้วจริงๆ

2016-07-21 00_28_01-ConsoleApplication1 - Microsoft Visual Studio

หรือแม้กระทั่งการปกปุ่มเขียวๆตรงนี้ก็คืการเริ่มต้นการ Debug

2016-07-21 00_28_01-debug-button

อ้าวแล้วการ Run ล่ะคืออะไร
คำตอบง่ายๆก็คือการ double click ไฟล์ Executable (หรือไฟล์ .exe) ตรงๆไงล่ะครับ
หรือถ้าจาก Visual Studio ก็ใช้ เมนู Start Without Debugging ซึ่งก็คือ Ctrl+F5

2016-07-21 00_28_01-debug-run_btn.png

แล้ว 2 อย่างนี้มันต่างกันยังไง????

(Run with) Debug – จะเป็นการ Run โปรแกรมโดยที่ทาง Debugger จะโหลดไฟล์หรือโมดูลเพื่อเตรียมพร้อมให้เราใช้สำหรับการ Debug โปรแกรมของเราได้ ซึ่งบางครั้งอาจจะทำให้รู้สึกว่าโปรแกรมมันทำงานช้าลงไปบ้าง..
แต่สิ่งที่เราจะได้มาคือ
– หยุดการทำงานของโปรแกรมตาม Code ในบรรทัดที่เราต้องการ
– ดูค่าตัวแปรต่างๆเวลาที่โปรแกรมทำงาน
– แก้ไขค่าได้แม้กระทั่งโปรแกรมทำงานอยู่
– และอีกมากมาย

ถ้าเราใช้ Process Explorer ดูจะเห็นว่าโปรแกรมที่เราทำการ Debug อยู่เนี่ยมันเป็น Process ลูกของ devenv.exe(ชื่อ Process ของ Visual Studio) ตรงๆเลยครับ (สำหรับ .NET ตัว Process จะมีเป็นชื่อ .vshost.exe แทน)

2016-07-21 00_28_01-debug-debug_tree

Run – จะเหมือนกับการใช้งานทั่วไปของ Users ซึ่งจะมี Performance ของโปรแกรมเราตามปกติ
ซึ่งจะเห็นได้ว่า deven.exe นั้นจะสร้าง cmd.exe( Commandline Application ) แล้วจึงทำการรัน ConsoleApplication1.exe ซึ่งเป็นโปรแกรมของเราอีกหนึ่งต่อ

2016-07-21 00_28_01-debug-run_tree

และตามปกตินั้นเวลาที่เรา Debug นั้นหน้าตาของ IDE จะเปลี่ยนไป เช่น

2016-07-21 00_28_01-debug-codeview.png
หน้าจอเขียน Code

ไปเป็น

2016-07-21 00_28_01-debug-debugview.png
หน้าจอตอน Run โปรแกรมแบบ Debug

ซึ่งไม่ต้องตกใจนะครับว่าอุตส่าห์จัดหน้าจอสวยๆแล้ว เพราะหน้าจอแบบนี้แหละจะช่วยให้เราทำการ Debug ได้ง่ายขึ้นแล้วมันก็จะเปลี่ยนกลับถ้าออกจากโหมด Debug ไปเป็นโหมด Editor 🙂

จบตรงนี้หวังว่าทุกท่านจะเข้าใจการรันโปรแกรมแบบ Debug ได้ดีขึ้นนะครับ…

Debugging Series:
Debug – Debugger สิ่งนี้คืออะไร

4 thoughts on “Debug – การ Run กับ Debug สิ่งนี้คืออะไร”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s