
C#: gắn Visual Studio vào ugraf.exe để đặt breakpoint và gỡ lỗi DLL NX Open
#C##Gỡ lỗi1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Với C# bạn có công cụ gỡ lỗi đầy đủ của Visual Studio: breakpoint, xem biến, từng bước. Cách làm là chạy NX bình thường, rồi gắn (attach) Visual Studio vào tiến trình ugraf.exe.
C#: gắn Visual Studio vào ugraf.exe để đặt…Các bước thực hiện
- Dịch bản Debug. Bật symbol (pdb) để có thông tin dòng code.
- Chạy NX. Mở NX và một part mẫu.
- Attach to Process. Visual Studio > Debug > Attach to Process > ugraf.exe.
- Đặt breakpoint. Trong code C#.
- Chạy DLL trong NX. File > Execute > NX Open; chương trình dừng ở breakpoint.
Code tham khảo (C#)
using System; using System.Diagnostics; using NXOpen; public class GoLoiDemo { public static void Main(string[] args) { Session session = Session.GetSession(); ListingWindow lw = session.ListingWindow; lw.Open(); // Tùy chọn: cho phép gắn debugger khi chạy từ NX (chỉ dùng khi phát triển) if (args != null && args.Length > 0 && args[0] == "--cho-debug") { lw.WriteLine("Chờ Visual Studio attach vào ugraf.exe..."); int dem = 0; while (!Debugger.IsAttached && dem < 300) { System.Threading.Thread.Sleep(100); dem++; } } Part work = session.Parts.Work; Debugger.Break(); // dừng tại đây nếu đã attach (bỏ khi phát hành) lw.WriteLine(work == null ? "Không có Work Part" : "Work Part: " + work.Leaf); } public static int GetUnloadOption(string dummy) { return (int)Session.LibraryUnloadOption.Immediately; } }Giải thích code
- Bản Debug sinh file
.pdbcạnh DLL; thiếu file này breakpoint không dừng đúng dòng. Debugger.IsAttachedcho biết đã có trình gỡ lỗi nối vào chưa; vòng chờ giúp bạn kịp attach khi chạy.Debugger.Break()buộc dừng tại dòng đó; nhớ xóa trước khi phát hành.
Lỗi thường gặp
- Quên chuyển sang bản Release khi phát hành: DLL Debug chậm hơn và chứa thông tin gỡ lỗi.
- Trên một số cấu hình, NX chạy ở quyền cao hơn Visual Studio, khi đó cần chạy VS bằng quyền quản trị mới attach được.
Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.
Điểm: 0
Trả lời
Đăng nhập để tham gia thảo luận.