[Ovmsdev] Debugging

Geir Øyvind Vælidalo geir at validalo.net
Thu Nov 23 06:10:04 HKT 2017


Thanks a lot, Steve! Great explanation :-) 

I’m using Mac, so please send the binary and library. 

Best regards,
Geir

> 22. nov. 2017 kl. 23:03 skrev Stephen Casner <casner at acm.org>:
> 
> On Wed, 22 Nov 2017, Geir ?yvind V?lidalo wrote:
> 
>> I see some of your are talking about gdb-stub, but I have never used
>> gbd and need some help.
>> How do I debug? What options do I have?
> 
> Happy to help with that.  To use the gdb-stub you change the parameter
> in menuconfig / Component Config / ESP32-specific / Panic handler
> behavior / Invoke GDBStub.
> 
> When the crash occurs, you'll be presented with a "gdb>" command
> prompt.  You can find references for "gdb commands" online.  Here is
> one:  http://www.yolinux.com/TUTORIALS/GDB-Commands.html
> 
> The first command I would expect you will want is "bt" which displays
> a stack backtrace telling in which function each call is made,
> including the source line number.  The frames on the stack are
> numbered; you can give the command "frame N" where N is a frame number
> to change to the context of that frame, since the lowest one might not
> be the place where things started to go wrong.
> 
> When you're at the right frame, you can use the "print" command to
> look at the value of variables.  If variable foo is a pointer, you can
> say "print *foo" to display the contents of the object foo points to.
> In many cases this will be enough to figure out the problem.  I also
> use the "x" command to examine memory by address in various ways.
> 
> You can also use the "list" command to see a few lines of source code
> around the point in the code referenced by that stack frame.  Usually
> I just look at my source in a separate window.
> 
> When using gdb on a real computer you can set breakpoints before
> starting the program, but I have not learned whether that is possible
> to do with the ESP32.
> 
> As I mentioned in one of the emails, if you are running on a Mac you
> should use the gdb binary that I made which references the newer
> libiconv library in order to avoid gdb getting stuck in an infinite
> loop.  If so, let me know and I'll send the binary and library to you.
> If you are running on a different platform, you should check to see
> what version of libiconv DLL (Windows) or shared library (Linux) is
> referenced.  On my Mac the new one is 9.0.0 vs. 7.0.0.  The old one is
> usable, but you have to be careful not to give any command that might
> result in gdb tryinging to display a variable value that has non-ASCII
> chars.
> 
>                                                        -- Steve
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.teslaclub.hk
> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.teslaclub.hk/pipermail/ovmsdev/attachments/20171122/3b29c862/attachment.html>


More information about the OvmsDev mailing list