Я уже писал. XC16 вообще не работает (генерирует некорректный код). MPLAB не отлаживает в половине случаев (и нужно вручную с хекс-дампами разбираться). objdump и nm из XC16 вообще не работают (objdump в XC16 просто нет). В C30 не работают в половине случаев (с отладочной информацией). MPLAB-X не работает с COFF, только с ELF и XC16. libc там собрано с -O1 или с -O0 по впечатлениям (даёт дикий размер сходу и можно сказать, при объёмах ПЗУ <=64кБайт применение printf и т.п. затруднительно) -- пришлось заменить на свои поделки. malloc даёт фрагментацию (толком не разобрался) на пустом месте, пришлось заменить на свой (и размер у библиотечного порядка пары сотен байт vs пара килобайт у своего, условно, что наводит на мысли). Некоторые библиотечные функции "уменьшенной" версии библиотеки сходу не работают и глючат и нужно использовать -legacy-libc. Опция -msmart-io вместо уменьшения объёма кода его увеличивает... До последней версии C30 не работал с опциями отличными от -O0 и -O1 (генерировал некорректный код), а XC16 и сейчас так делает (т.е. бесплатная версия ничем не хуже покупной или ворованной). Ни в MPLAB, ни в MPLAB-X не показывает стек (ни для PIC24, ни для PIC18), хотя это программно возможно (написаны свои программы для того). Для PIC24 врёт мол "мешает оптимизация". При -O0 она ему тоже мешает -- индусы просто не написали код и вставили такую затычку. И список ещё можно долго продолжать. RealIce отваливался через раз до последней версии MPLAB-X. Про MPLAB-X ещё можно сказать. Там два окна disassembly view и в них он способен показывать _разное_ содержимое. Stepping по одной инструкции толком не получается, отладчик норовит шагать по source, не понял от чего зависит. Наконец просто неудобно, масса мелких косяков и медленно работает (Mplab-X) и не в железе дело. MPLAB (без X) был лучше...
[ZX]