From: Joerg W. <j...@ur...> - 2014-01-21 08:29:35
|
As Oliver Večerník wrote: > > Here how it looked for me (AVR-GDB 7.3.1, AVaRICE running on an > > ATmega1284P which has a few more IO registers than your ATmega164P): > > Unfortunately I can't get 7.3.1 compiled on my system. Why not? > I can confirm > the same behaviour with the latest binutils-gdb (GNU gdb (GDB) > 7.7.50.20140120-cvs) code and Ubuntu 13.10: Yes, I can also confirm the bug for GDB 7.6.2 (which is the latest official release). Apparently, someone broke target_read_alloc() (or its API changed?). The infinite loop happens in avr-tdep.c, function avr_io_reg_read_command(): /* Find out how many io registers the target has. */ bufsiz = target_read_alloc (¤t_target, TARGET_OBJECT_AVR, "avr.io_reg", &buf); This target_read_alloc() is supposed to return the number of IO registers (the value passed from AVaRICE), but it never returns. Please write a GDB bug report for this. > BTW: is there any specific reason (besides it works) for using such an > ancient version on your system? I wouldn't consider it "ancient" (it's about a couple of years old), but the reason is: yes, because it works. With minor bugs, yes, like GDB's unability to correctly handle the AVR's Harvard architecture, and always getting a mixup between code and data pointers when specifying an address. But in general, it is usable. I simply never blindly upgraded it without giving it some testing before. > Is FreeBSD, I suppose, preferred over > (Ubuntu) Linux for AVR work? I don't think so. Currently, I lag quite behind in upgrading the FreeBSD ports, and in other areas (like GCC), it's really due to upgrade because many things changed to the better recently. -- cheers, Joerg .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ Never trust an operating system you don't have sources for. ;-) |