Nice work with Studio RC3, and a little more to look at...

Go To Last Post
3 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I just want to thank the team for the work you have done on AVR Studio.

I have previously reported some problems, but I have dealt with HW since, so I have not had the time to test Studio.

The day before yesterday I started RC2 and experienced problems resolving breakpoint addresses in source files located in other directories than the location of the loaded object file. You could step into the code, but not set a breakpoint there.

Today RC3 showed that the problem is solved for my use of it.

Compared to the last time I used AVR Studio much has happened as I see it.

It looks like most of the problems from my last reporting has been solved,
eg. setting breakpoints and locating source seems OK.. But a quick test of "step into"
revealed that call of member functions is OK, while calls of constructors like in this code

some_class_type my_class;
or
some_class_type my_class( param );

just steps over. If I open the assembler window, then I can step into the constructor code.

Another problem report is now documented here in a very small tiny26 program. AVRStudio can not load the program. (see attachment, either attached twice or not attached, I can't see any effect when I click the "Add Attachment" button)

But once more, thank you for the good job on AVR Studio on its way to become one of the best debugging environments available, and for the close contact with the users of your work.

Today I'm glad you were not discouraged by some of the negative comments from the beginning. Nobody creates a tool like this without experiencing problems. Persistence pays off !

Best regards
Erik

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Erik.

Thank you for your kind words.

What kind of object file format are you using when you have trouble stepping into constructors?
The ELF/DWARF parser in AVR Studio has limited support for C++ debug information.

Regards,
Torleif Sandnes
Atmel AVR Software Team

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Torleif

Thank you for your answer.

I use the ELF/DWARF format, so i guess I have to wait for a new version of avrgcc.

Luckily I have the workaround to open the assembler window and single step into the desired constuctor. But setting a breakpoint in the constructor do not break the program, and here is why. My constructor looks like this:

cGRAPHIC::cGRAPHIC( cSPI *pSPI )
{
	m_pSPI = pSPI;
}

And the assember window of the constructor looks like this:

216:      {
+0000030F:   01FC        MOVW    R30,R24          Copy register pair
217:      	m_pSPI = pSPI;
+00000310:   8360        STD     Z+0,R22          Store indirect with displacement
+00000311:   8371        STD     Z+1,R23          Store indirect with displacement
+00000312:   9508        RET                      Subroutine return
+00000313:   01FC        MOVW    R30,R24          Copy register pair
+00000314:   8360        STD     Z+0,R22          Store indirect with displacement
+00000315:   8371        STD     Z+1,R23          Store indirect with displacement
+00000316:   9508        RET

Note that the constructor code is dublicated.
When I set a breakpoint in the source window on the line:

	m_pSPI = pSPI;

The breakpoint is set on location 310.

But it is the second "copy" of the code that is called at address 313, so obviously no break...

I can not assosiate AVR Studio with this problem, I guess that single stepping, and setting a breakpoint on the source line is equivalent.
But why ia the constuctor code dublicatrd ? I think we have to start here instead of focusing on Studio.

Regards
Erik