จากบทความที่แล้วผมได้อธิบายโครงสร้างของ file Manage code ว่ามีทั้ง 4 ส่วนและแต่ล่ะส่วนไม่ได้มีการเก็บ Native code ไปให้ CPU ประมวลผลเลย
การอธิบายที่ดีที่สุดคือการยกตัวอย่าง ตัวอย่าง code ข้างล่างเขียนขึ้นด้วยภาษา C# เป็นตัวอย่างง่ายๆ น่ะครับ
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.WriteLine("Good Bye");
}
}
}
เมื่อเรา coding เสร็จ เราก็จะทำการ compile code กัน ตัว C# compiler จะทำการสร้าง file มาให้ 2 file ที่มีนามสกุล .EXE และ นามสกุล .PDB โปรแกรมที่เราจะเอาไปใช้งานก็มีแค่ file นามสกุล .EXE
เนื่องจาก file .EXE เป็น Managed code เราจึงสามารถดูเนื้อหาภายใน file ได้ทาง Microsoft ได้ออก tool ที่ชื่อว่า CorFlags.exe เป็นโปรแกรมสำหรับเรียกดู header information ของ Managed code รูปแบบคำสั่งคือ
CorFlags <ManagedCode.exe>
จากตัวอย่าง code ข้างบน เราสามารถใช้คำสั่ง
CorFlags HelloWorld.exe
นี้เป็นตัวอย่างผลที่ได้จากคำสั่ง CorFlags.
จะเห็นว่า โปรแกรมนี้ต้องการ .Net Framework version 4.0 และต้องการ CLR version 2.5 CPU Header เป็นชนิด PE32 สำหรับ ILONLY จะหมายถึงเนื้อหาภายใน Managed code มีแต่เนื้อหา IL และไม่มี unsafe code
แต่ถ้าใครไม่สะดวกที่จะใช้ command mode ยังมี Tool อีก 1 ชนิดคือ CFF Explorer เป็น GUI application ที่ใช้สำหรับดู header ของ file Managed code.
Microsoft ยังมี tool อีกตัวที่ชื่อว่า ILDASM เอาไว้ดู IL code ของ Managed code ตัวอย่างคำสั่งน่ะครับ
ILDASM HelloWorld.exe
จะได้ดังรูปครับ
อา .... ผมลืมบอกไปว่า Tools ของ Microsoft จะมาพร้อมกับ Visual Studio และจะต้อง รัน โปรแกรม command prompt ของ Visual Studio เท่านั้น น่ะครับ ถ้าใช้ command prompt ของ Windows เองจะใช้ได้ไม่ค่อยดีน่ะครับ วิธีเข้า command prompt ของ Visual Studio ดูได้ตามรูปเลยครับ
ตอนหน้าเจอกันแน่นอนครับ execute Managed code.
TuChay
ไม่มีความคิดเห็น:
แสดงความคิดเห็น