Ответ 1
В С# вы можете использовать это:
System.Diagnostics.Debugger.Break();
Он заставит точку останова.
Мало кто из нас отрицает удивительность отладчиков, но чтобы сделать его более полезным, можно использовать некоторые трюки.
Например, в Python вы можете использовать pass, чтобы ничего не делать, кроме как оставить место для размещения точки останова и позволить вам наблюдать за значениями в окне "Часы".
В С# я использовал GC.Collect(), но теперь я использую if (false) {}
Какая ваша самая игривая фиктивная линия?
В С# вы можете использовать это:
System.Diagnostics.Debugger.Break();
Он заставит точку останова.
В С#, в Visual Studio
{}
или
;
Debug.Assert(true);, который автоматически компилируется из релизов.
volatile int e = 9;
Volatile означает, что компилятор не удалит его, потому что я не читаю переменную. '9' так, чтобы он был ненулевым. Ноль слишком распространен для моих вкусов.
Я никогда не писал что-то специально, чтобы сломаться, но если бы я это сделал, я бы написал
int moot;
Я использую это, когда есть какой-то необходимый параметр "out", который мне не нужен, но должен предоставить.
в gcc/g++:
assert("breakpoint");
поскольку любое значение, отличное от 0/null, к утверждению принимается как истинное.
или даже
__asm__("nop");
По крайней мере, я знаю, что будет бит инструкции, испущенный для точки останова.;)
Я использую
int x = 0;
Я всегда убеждаюсь, что я удалю эту строку, когда я сделаю отладку.
Для C/С++ я использую
__asm int 3;
Это приведет к возникновению исключения точки останова в этой строке кода, который будет отлаживать отладчик. Предостережение, хотя ваша программа будет сбой с этим исключением, если он не будет запущен внутри отладчика.
Не очень сложный, но функциональный.
bool bp;
bp = true; //whereever I need to break.
В VB6 я использую двоеточие, сам по себе. :
В С++ я использую
Sleep(0)
иногда или просто найти переменную, которая использовала и присваивала ее самому себе:
i = i;
Правда, странно, что отладчик VS2010 сдвигает точки останова, если они находятся в пустой инструкции, такой как точка с запятой. Несмотря на то, как это выглядит, в сборке отладки вы все равно можете поместить точку останова на пустой блок управления С# или точку с запятой, и он будет попадать правильно. После некоторого времени раздражаясь этим, я просто создал это для использования:
public static class Nop { public static void X() { } };
edit: Чтобы использовать его, поместите Nop.X() в свой код...