Атрибут работает для компиляции. Если флаг DEBUG не установлен, метод исключается из создаваемого двоичного файла.
Отладчик подключен проверяет, подключен ли отладчик. Но отладчик может быть подключен к любому типу сборки (Release, Debug и т. Д.)
Так как они совершенно разные, я не думаю, что их можно сравнить, для которых "лучше". Они делают разные вещи. Если вы хотите что-то для отладочной сборки, которое вообще не должно влиять (например, на производительность) на производственную сборку, используйте атрибут.