if ((*l).proc == NULL) { (*l).proc = current_process; if(current_process == NULL) { __no_operation(); } if((*l).proc == NULL) { __no_operation(); } }
При запуске этого кода я добавил точки останова в обеих операциях.Тем не менее, он ломается только на втором из двух.Как это возможно?
Любой здравомыслящий компилятор оптимизирует эти два идентичных блока в один блок.Это, вероятно, также оптимизирует два условия в одно.Если вы хотите, чтобы оба работали отдельно, добавьте puts("A"); к первому и puts("B"); ко второму.
puts("A");
puts("B");