VC++

yair24

Member
VC++

שלום, איך עושים DEBUG לתוכנית שמשתמשת בMFC שבתוכה יש פונקציה שרצה על קובץ טקסטואלי וקוראת ממנו אותיות? (בדיוק בקטע של הריצה על הקובץ אני רוצה לראות בWATCHES את כל המשתנים וכו´) יאיר
 

nfnf

New member
לא מובן

איזה משתנים בדיוק את רוצה לראות? הבעיה לא כל כך מובנת כי אפשר לדבג בMFC אותו הדבר כמו בכל תוכנית אחרת.
 

yair24

Member
אפשרי?

כי אני זוכר שכשלמדנו אז כשעשינו דיבאג היינו צריכים לכתוב לו כל מיני תנאים שרק אם הם קורים אז הדיבאג נכנס לפעולה. יאיר
 

nfnf

New member
שוב

אם תוכל לפרט מה בדיוק הבעיה... אתה מנסה לדבג ומה לא עובד?
 

yair24

Member
ואללה צודק,

צודק... הדיבאג פועל כמו בתוכנית קונסול רגילה... אני פשוט זוכר שהמרצה שלי פעם ניסה להראות לנו דיבאג בתוכנית שמבוססת על MFC והדיבאגר ביקש ממנו כל מיני תנאים וכל מיני דברים מוזרים... כנראה שזה היה איזשהו שלב מסוים של הMFC שהוא רצה לדבג ושאי אפשר לדבג בצורה רגילה... (אני לא כל כך זוכר את המקרה) ומאז לא ניסיתי לדבג. אז בכל מקרה תודה רבה. יאיר
 

galh

New member
שמים BreakPoint...

ההבדל בין תוכנית ב- MFC לבין תוכנית שלא מובססת על תכנות מונחה-אירועים (events driven) הוא שקשה מאוד לעקוב אחרי "הזרימה" של התוכנית (גם אם יש את קוד המקוד של MFC). לכן, בזמן הדיבוג של תוכנית MFC משתמשים בעיקר ב- break points (נק´ עצירה?). ניתן לשים גם תנאים לכל נקודה כך שרק אחרי שהפונקציה נקראה מספר מסויים של פעמים התוכנית תעצר, או שערך של משתנה שווה ל- 5 (סתם דוגמא). אפשרות נוספת היא להשתמש ב- macros בשם TRACE, ASSERT ו- VERIFY. אבל חשוב מאוד לקרוא את התיעוד שלהם, כי הם לא מחליפים בדיקה שזמן ריצה אלא *רק* נקודות עצירה נוחות בזמן הפיתוח.
 

yair24

Member
כנראה שמה שאתה אומר

זה המקרה שאותו מרצה ניסה להראות לנו... יאיר
 

galh

New member
כנראה...

אבל זה שלא שהדיבאגר מבקש את התנאים.. ניתן להוסיף את התנאים האלו בשביל להקל לעצמך את החיים (דבר שאתה לא רוצה לעשות כנראה, כי בחרת להיות מתכנת
).
 
למעלה