VS Arduino
>> >> Debugging library code
https://www.visualmicro.com/forums/YaBB.pl?num=1455225504

Message started by Bob Jones on Feb 11th, 2016 at 9:18pm

Title: Debugging library code
Post by Bob Jones on Feb 11th, 2016 at 9:18pm
I am developing multiple reusable libraries. The code for all of these libraries lies in my user->documents->arduino->libraries folder. I can edit, compile and execute them but I cannot place working breakpoints in any of this code.

Is there a way to use the debugger on this code while in the libraries folder or do I need to copy them all into my sketch's folder structure?

Title: Re: Debugging library code
Post by Visual Micro on Feb 11th, 2016 at 9:25pm
You can't debug them from documents\arduino\libraries yet but you can place them in a special location so that they continue to work as libraries but can be debugged.

If you right click the project in the solution explorer you will see "Add>New Arduino Library". This will create an example library in "project\src\micro libraries\[new lib name]"

Visual micro allows for this special libraries folder structure below the project. Libraries placed in the special location will override the published versions in "documents\arduino\libraries" and can be debugged. The location is treated as an official arduino libraries location so that #includes can remain as "LibName.h" without path specification.


Title: Re: Debugging library code
Post by Bob Jones on Feb 12th, 2016 at 3:05am
I tried moving the libraries into my directory structure, but the compiler can't seem to find them there. They are in rover->src->_micro-api->libraries->[lib name]->src->[file name]. I refreshed the list of user libraries but I get a fatal error: "No such file or directory".

What step am I missing?

Title: Re: Debugging library code
Post by Visual Micro on Feb 13th, 2016 at 1:05pm
Is "Visual Micro\Deep search includes" Off?

If you use a version 2 arduino library format you will need a library.properties in the root of the library

Does creating a new library using the visual micro menus work in a new simple project?

Title: Re: Debugging library code
Post by Bob Jones on Feb 13th, 2016 at 3:26pm
I checked and all my libraries contain a library.properties file.

I added a new cpp  and header and they wound up in the root folder of the project, along with the .ino file.

I added a library and it wound up in the same place as I had placed my own libraries, complete with a library.properties file.

The attached rover.zip shows the structure. I had to delete some of the folders that the compiler creates so I could get under the 250KB limit. See "Output.txt" in the "Rover" folder.

Bottom line: the compiler cannot find libraries embedded in the same folder as the sketch.

https://www.visualmicro.com/forums/YaBB.pl?action=downloadfile;file=Rover_007.zip ( 144 KB | 4 Downloads )
https://www.visualmicro.com/forums/YaBB.pl?action=downloadfile;file=libraries_001.zip ( 80 KB | 1 Download )

Title: Re: Debugging library code
Post by Visual Micro on Feb 13th, 2016 at 3:35pm
Thanks

I just published a new build that allows the "Visual Micro\Deep search includes" to work with local libraries.

If that is not (or was not) the problem then it sounds like your "tools>options>visual micro>compatibility settings" might be wrong. Please let me know if they are all enabled/true?

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 5:32am
The output file is attached. The compiler is including libraries in the sketch micro-api that aren't there and not including folders that are there. The attached image shows the folders that do exist in the sketch.

How does the compiler decide which folders to include?
2016-02-13_21-30-35.jpg ( 59 KB | 2 Downloads )

Title: Re: Debugging library code
Post by Visual Micro on Feb 14th, 2016 at 1:04pm
Can't see the output please email it.

The compiler uses the project to work out which files to include

It might also be an idea to zip and email your project with folders and files.

Thanks

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 2:05pm
Tim,

Zip file attached. I had to delete a number of files to get under the 250KB limitation. Any chance you could increase that to 500KB or 1MB?

Output.txt (in Rover folder) has verbose output.
https://www.visualmicro.com/forums/YaBB.pl?action=downloadfile;file=Rover_008.zip ( 171 KB | 1 Download )
2016-02-14_5-50-25.jpg ( 208 KB | 1 Download )

Title: Re: Debugging library code
Post by Visual Micro on Feb 14th, 2016 at 2:19pm
You can always email the zip. It's easier to delete old files that way otherwise the forum fills up.

I am sorry if I have not been clear previously when I stressed the importance of using the "Show all files" solution explorer view.

The "show all files view" avoids a lot of confusion and allows you to clearly see what you have (or have not included)  included in your project.

It is very confusing to work in Visual Studio with deeply nested folders without having this view enabled.

I think you should use the visual studio solution in the way I show below instead of using windows explorer in the way you have shown in your post. The windows explorer view does not give you any indication of what is included in your project so does not show what will be compiled.

Below is what I could see when I opened the project that you attached.

note: Historically all files in the root of an arduino project are compiled because this is what the arduino ide does. This is also the default behavior for visual micro. However source code in sub folders is only compiled if it is included in the visual studio project and this applies to library sources. (local libraries are a relatively new feature and up for discussion if its confusing)

solution-explorer-view-all.png ( 28 KB | 2 Downloads )

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 2:42pm
Tim,

Is there any chance we could meet on Skype or Zoom so you could see my configuration and get a clear picture of what is happening? Right now I am getting 131 errors and 532 warnings and they all appear to be bogus.

My skype handle is my email address.

Thanks,

Bob

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 3:01pm
If I move the libraries from the Arduino/Rover/src... folder back to the Arduini/Libraries folder, the errors all go away. There is something very wonky about how the compiler deals with the libraries when they are included directly.

Bob

Title: Re: Debugging library code
Post by Visual Micro on Feb 14th, 2016 at 3:48pm
Hi Bob,

I could consider that but first it would be better that we cover the basics.

1)
I am unclear if you have registered my comment about showing all files?

2)
I am unclear if you have now included the Missing files such as BJMotionDetector.cpp and BJNavigation.cpp into your project correctly?? In the previous post I showed you have not included these files in your project. Did you do that?

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 4:03pm
Tim,

Yes to both questions. I have since moved all the libraries back to the Arduino/libraries folder but I can move them back to the Rover folder easily and run the tests again if that will help. Having done this a few times already, it is getting easier to do.

I still think that there are enough questions that a Skype session would be the most efficient way of resolving them.

Bob

Title: Re: Debugging library code
Post by Visual Micro on Feb 14th, 2016 at 4:17pm
Hi Bob,

I only have so many hours in the day to support people, the $20 price doesn't justify much more. If it was obviously a bug or issue then I would consider it but seeing that you only just learned to "right click>include the sources in the project" I think we should wait.

I will get time over the next few days to look at your project. I will include the missing sources and setup the other libraries and will be able to see what else is missing.

Thanks

Title: Re: Debugging library code
Post by Bob Jones on Feb 14th, 2016 at 4:22pm
Thanks, Tim and I fully appreciate the time you have spend and vs. the revenue received. I did (just) manage to get the code and am now testing to see if I can get debug to work in the libraries.

Going forward, I do want to support your great effort. Seldom in my 48 years as a software developer (see rhj4.com blog) have I encountered the level of responsiveness I have experienced with you. I will gladly write a testimonial if that will help your marketing efforts.

As far as Skype (or Zoom...) time, I am comfortable paying you for that time if I can afford your rate. Let me know what it would cost me.

Thanks,

Bob
;D

VS Arduino » Powered by YaBB 2.6.12!
YaBB Forum Software © 2000-2024. All Rights Reserved.