Compile errors sometimes not shown


There seems to be a bug in the arduino software which hides or severly truncates compile errors with no way of finding out more. This came up when trying to compile a Sketch which included a (generated) header file, which may well have contained errors. When compiling with the "Verify" buton, it apparently noticed an error but only output a single line:

In function 'void load_image_arrow(image*)':

That was it. There seems to be no way to see the entire compiler output or any other means of getting more information out of the interface. It definitely feels like a bug that an error is reported with absolutely zero information on what that error might be.

(I'm not asking what might be wrong with that line, by the way, it's just one of the situations where this behaviour was annoying). I can provide the offending sourcefiles if desired.

I had the same issues. What I did --> I got rid of the IDE. That is I went through the painful process to figure out a makefile that actually works. Unfortunately I did not yet find the time to make it really generic. So it only works for me.

Anyway, after reading lots of posts I found the following three the most helpful:

Once you switch to a makefile you will have normal C files and hence the compiler messages refer to you files. And once you understand the makefile you know why the IDE can not deliver proper error messages. The IDE wraps and concatenates your code with some additional stuff. After this the line numbers refer to the generated code instead of refering to your code. Hence the IDE tries to hide to line numbers. Obviously it sometimes hides even more than it should.

I was hoping to avoid doing that; while it works the the IDE is quite convenient, but oh well. I'll see if I can get a command line build environment set up. looks fairly promising (I'm on OSX). (Edit: Or not so promising; it's hopelessly out of date).

Yes, switching to the command line is painful. Took me several days. But then again this allowed me to use local copies of the wiring includes and mess around in the includes. The impact is that I have much better control of timer0. Furthermore I changed the delayMicroseconds to not disable interrupts for one specific project. And of course I patched the Hardware Serial Library and decreased the input buffer to 16 bytes (in order to free up memory).

That is: although it took really long to figure out how it works it really paid off.

Cheers, Udo