Какую вашу любимую фиктивную линию поставить точку останова?

Мало кто из нас отрицает удивительность отладчиков, но чтобы сделать его более полезным, можно использовать некоторые трюки.

Например, в Python вы можете использовать pass, чтобы ничего не делать, кроме как оставить место для размещения точки останова и позволить вам наблюдать за значениями в окне "Часы".

В С# я использовал GC.Collect(), но теперь я использую if (false) {}

Какая ваша самая игривая фиктивная линия?

Ответы

Ответ 1

В С# вы можете использовать это:

System.Diagnostics.Debugger.Break();

Он заставит точку останова.

Ответ 2

В С#, в Visual Studio

{}

или

;

Ответ 3

Debug.Assert(true);, который автоматически компилируется из релизов.

Ответ 4

volatile int e = 9;

Volatile означает, что компилятор не удалит его, потому что я не читаю переменную. '9' так, чтобы он был ненулевым. Ноль слишком распространен для моих вкусов.

Ответ 5

Я никогда не писал что-то специально, чтобы сломаться, но если бы я это сделал, я бы написал

int moot;

Я использую это, когда есть какой-то необходимый параметр "out", который мне не нужен, но должен предоставить.

Ответ 6

в gcc/g++:

assert("breakpoint");

поскольку любое значение, отличное от 0/null, к утверждению принимается как истинное.

или даже

__asm__("nop");

По крайней мере, я знаю, что будет бит инструкции, испущенный для точки останова.;)

Ответ 7

Я использую

int x = 0;

Я всегда убеждаюсь, что я удалю эту строку, когда я сделаю отладку.

Ответ 8

Для C/С++ я использую

__asm int 3;

Это приведет к возникновению исключения точки останова в этой строке кода, который будет отлаживать отладчик. Предостережение, хотя ваша программа будет сбой с этим исключением, если он не будет запущен внутри отладчика.

Ответ 9

Не очень сложный, но функциональный.

bool bp;

bp = true; //whereever I need to break.

Ответ 10

В VB6 я использую двоеточие, сам по себе. :

Ответ 11

В С++ я использую

Sleep(0) 

иногда или просто найти переменную, которая использовала и присваивала ее самому себе:

i = i;

Ответ 12

Правда, странно, что отладчик VS2010 сдвигает точки останова, если они находятся в пустой инструкции, такой как точка с запятой. Несмотря на то, как это выглядит, в сборке отладки вы все равно можете поместить точку останова на пустой блок управления С# или точку с запятой, и он будет попадать правильно. После некоторого времени раздражаясь этим, я просто создал это для использования:

public static class Nop { public static void X() { } };

edit: Чтобы использовать его, поместите Nop.X() в свой код...