[chirp_devel] How to debug?
I am a very experienced software developer, but not with CHIRP, or Python, or Ham radio, so I'm basically a newbie here. I have written a new driver for the FT-4XR and (eventually) for its siblings. The module successfully reads the radio, but then fails to fill in the GUI memory structures. I tried to use pdb as described at https://docs.python.org/2/library/pdb.html by inserting the following line at a point in my module: import pdb; pdb.set_trace() The breakpoint is reached, the line after mhy breakpoint is printed, and the (Pdb) prompt is shown on the console, but I cannot then type in a pdb command: characters are not shown on the console when typed and there is no evidence that the commands are being executed.
So, how do you guys debug? What am I doing wrong?
I am a very experienced software developer, but not with CHIRP, or Python, or Ham radio, so I'm basically a newbie here. I have written a new driver for the FT-4XR and (eventually) for its siblings. The module successfully reads the radio, but then fails to fill in the GUI memory structures. I tried to use pdb as described at https://docs.python.org/2/library/pdb.html by inserting the following line at a point in my module: import pdb; pdb.set_trace() The breakpoint is reached, the line after mhy breakpoint is printed, and the (Pdb) prompt is shown on the console, but I cannot then type in a pdb command: characters are not shown on the console when typed and there is no evidence that the commands are being executed.
This is probably because the driver is running in a different thread than the one that has control of the console (maybe?).
So, how do you guys debug? What am I doing wrong?
With LOG.debug() statements :)
I'm not a big debugger user myself, so perhaps I'm not the best person to help you with a workaround if you really need to figure out a way to use PBD with chirp.
--Dan
Thanks, Dan :-) I have progressed slightly beyond that point. I debugged most of the code using chirpc instead of chirpw. That let me use pdb, since chirpc did not have the threading problem. I then installed the Eric6 IDE, which did do a fairly good job of debugging chirpw with threads.
But there are also some fairly fundamental things I did not know about. such as the 'browser" tab in the CHIRP GUI.
In any event I hope to finish up my ft4 driver in the next few days.
I still have not figured out how to use the tox unit testing system.
I am uncertain about the semantics of the tone modes. In particuar the CHIRP code defines a mode (TSQL-R) that is not described on the web page https://chirp.danplanet.com/projects/chirp/wiki/DevelopersToneModes but which appears to be the same asone of the cross modes.
On Thu, Jan 31, 2019 at 11:04 AM Dan Smith via chirp_devel < chirp_devel@intrepid.danplanet.com> wrote:
I am a very experienced software developer, but not with CHIRP, or
Python, or Ham radio, so I'm basically a newbie here. I have written a new driver for the FT-4XR and (eventually) for its siblings. The module successfully reads the radio, but then fails to fill in the GUI memory structures. I tried to use pdb as described at
https://docs.python.org/2/library/pdb.html
by inserting the following line at a point in my module: import pdb; pdb.set_trace() The breakpoint is reached, the line after mhy breakpoint is printed,
and the (Pdb) prompt is shown on the console, but I cannot then type in a pdb command: characters are not shown on the console when typed and there is no evidence that the commands are being executed.
This is probably because the driver is running in a different thread than the one that has control of the console (maybe?).
So, how do you guys debug? What am I doing wrong?
With LOG.debug() statements :)
I'm not a big debugger user myself, so perhaps I'm not the best person to help you with a workaround if you really need to figure out a way to use PBD with chirp.
--Dan
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
participants (2)
-
Dan Clemmensen
-
Dan Smith