التصحيح الشرطي على Visual C ++ 2008 Express
سؤال
هل هناك طريقة لتصحيح التعليمات البرمجية على Visual C ++ 2008 Express، مثل أن أشاهد متغيرا لقيمة (قيمتها)، عندما يفترض هذه القيمة، لكسر؟
على سبيل المثال، أريد كسر متى x
يصبح 5
. وبعد في GDB وأود أن ضبط نقطة توقف ثم حالة x == 5
. وبعد كيف يمكنني أن أفعل ذلك (إن أمكن) على Visual C ++ 2008 Express؟
المحلول
على الرغم من أن مبني في دعمها مفقود في الإصدارات السريعة، هناك طريقة أخرى حولها.
لقد وجدت هذا على إجابة أخرى لسؤال مماثل.
#if DEBUG
if( node.Name == "Book" )
System.Diagnostics.Debugger.Break();
#endif
يوضح المثال أنه إذا كان اسم خاصية اسم المطابقة "Book"، يحدث نقطة توقف.
هنا هو السؤال الأصلي:
نصائح أخرى
هذا غير ممكن في إصدارات Express من Visual Studio. ولكن من الممكن في الإصدارات الكاملة.
يبدو أنه من الممكن القيام بذلك حتى في Express، على الأقل هنا يعمل. بعد وضع علامة على نقطة التوقف، قمت بالنقر بزر الماوس الأيمن فوق علامتها، وتعيين "حالة" (لا يمكن أن تكون أسهل من ذلك)
ثم يمكنك كتابة تعبير يقيم صحيحا. قال زميلي الذي أظهر لي للتو هذا لي أن لديهم بعض القضايا التي تستخدم هذا من أجل مقارنة السلاسل، لكنها أنيقة جدا بالنسبة للمقارنات البسيطة باستخدام Ints.
ومع ذلك، كما قال في الإجابة الأخرى، هذا ليس سريعا مثل كتابة رمز الاستراحة مباشرة.
سعيد الحظ! استوديو مرئي 2010 التعبير عن C / C ++ يدعم ذلك. يرى كيفية: تحديد حالة نقطة توقف.
لقد جربتها.