Вероятно, самый важный совет, который вы можете использовать, это DebugBreak.
Поместите DebugBreak () в свой код, и когда он выполняется, это все равно что достичь точки останова.
Самое приятное в том, что вы можете наложить на него условные выражения, которые трудно установить на обычную точку останова. Научитесь использовать это!
Например, ваша программа падает, когда переваривает определенный файл данных. Вы обнаруживаете, что происходит сбой в определенной функции, но только после того, как ее вызвали миллион раз.
Вы также выяснили, что это происходит сбой, потому что определенная переменная с именем x имеет значение 1001, но предполагается, что x находится между 0 и 1000. Таким образом, вместо того, чтобы надеяться на удачу поймать место, где x становится большим, вы найдете каждый Поместите это х меняется. Сразу после этого вы положили заявление:
if (x> 1000) DebugBreak ();
Да, вы можете сделать это с условными точками останова, но я видел программу, которая за 1 секунду выполняет замедление до 15 минут с тремя условными точками останова, но выполняется за 1,5 секунды с DebugBreak.
Сказав, что вот несколько полезных предложений. Математически докажите себе, что причина, по которой вы думаете, что ошибка происходит, объясняет фактическую ошибку, происходящую, по крайней мере, часть времени (маловероятно, что две ошибки создают одну и ту же проблему, но это происходит). Я видел некоторые из самых глупых исправлений, потому что люди «чувствуют», что является причиной ошибки. Убедитесь, что ваша логика так же надежна, как и любое доказательство в классе геометрии.
Второе предложение, если вы добавите экспериментальное исправление, а оно ничего не даст. Возьми это.