If I were to describe MPLAB X, the NetBeans-based IDE that Microchip is pushing as the primary development suite for all new PIC32 projects, I believe I would leave it at simply: insufferable.
It is swell that Microchip is kind enough to provide a free IDE to sit on top of free compilers and interface with quite inexpensive debuggers. But the experience of using said tools isn’t exactly pleasurable. And, as I recently found out, shelling out lots and lots of cold hard cash for their premium products… doesn’t really improve things much on the tools front.
I have one concern, in particular, that seems totally inexplicable. Who ships a development suite with NO FUNCTIONAL COMMAND-LINE DEBUGGER? Forcing me to use your unstable IDE is already bad enough, but when your IDE isn’t even functional, how am I expected to debug my code?
Microchip keeps stating that better command-line support is planned for some unnamed time in the future. They have begun work, and MPLAB X currently ships with an unfinished command-line debugger that Microchip welcomes you to try.
For Windows platforms this is ‘mdb.bat’, and for POSIX platforms it’s ‘mdb.sh’.
Here is it in one of its rare moments of proper functioning:
Nov 21, 2012 12:36:58 AM com.microchip.mplab.mdbcore.RealICETool.RIMessages OutputMessage
Connecting to MPLAB REAL ICE…
Firmware Suite Version…..01.28.18
Device ID Revision = 0x10000000
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x1ffff
boot config memory
Breakpoint 0 at 0x9d00f5ac: file MainDemo.c, line 280.
Cool! I’ll bet it even handles structs!
Hmm, guess not. Well, let me just recall my breakpoints again:
Undefined command: “breakpoints”. Try “help”
Error: invalid parameter.
Undefined command: “bp”. Try “help”
Just kidding! It doesn’t support that. Well, let’s hit the next line:
It’s not a coincidence that all of the other examples above end on a prompt, and this one doesn’t. This one never returned to the prompt, it just hung forever.
It supports watch points and conditional breaks, but it doesn’t support setting a breakpoint on a function name, displaying structures, or viewing the current breakpoints. And it crashes or hangs all the time.
So, currently mdb is unusable. Which is expected, since Microchip admits as much. But MPLAB X is also unusable (confirmed by their forums). So, that only leaves one option…