So I get the fact that GNURadio is highly parallel, that is fine. I debug
C++ OOT blocks all the time and it is super easy, generally I make specific
effort to isolate the OOT block that I am currently working on in a test
flowgraph.

For C++ OOT blocks I just run the python top_block.py in gdb (via vscode),
and place a breakpoint in my C++ OOT block, and it works.

If I want to debug the python flowgraph, (generated from GRC or custom), I
can do that via the python debug tool, I cannot step through the internals
of blocks, but can see if things are hooking up correctly.

my problem, (and I personally don't think that there is a solution, but am
happy to be wrong) is that there is no way to place a breakpoint inside a
python block, like I do in the c++ blocks. presumably the swig (I'm still
on 3.8) process removes all the information?.

As for specific use cases, the more complex blocks I write are all C++, but
sometimes it is useful to write a quick and dirty python block which I can
then use for debugging purposes. However when I do this I have to resort to
using print statements to make sure everything is working like I expect.
It's ok and workable, but I am not that good of a programmer and tend to do
guess and check, which a debugger, rather than adding/removing print
statements really speeds up.

So I guess there is nothing in particular to debug, but If there is a more
efficient way to work I would love to know.

Nick

On Sat, Jan 16, 2021 PM Jeff Long  wrote:

> Python includes a debugger (pdb) and IDEs like VSCode have decent Python
> debugging. This should work fine for Python scripts like those generated by
> GRC. Internally, GNU Radio is highly parallel, which creates additional
> challenges not related to language ... how do you stop one block when that
> changes the behavior of, or crashes, the whole framework?
>
> Anything in particular you are trying to debug?
>
> On Sat, Jan 16, 2021 at 6:51 PM Nicholas Long <nicholaslon...@gmail.com>
> wrote:
>
>> So this is a relatively generic question about what people's processes
>> for writing and debugging python blocks are.
>>
>> In C++ I use VScode and just run the gdb debugger - I can place
>> breakpoints, look at variables, and step through the program super easily.
>>
>> Ideally I would like to be able to do the same with python blocks, but am
>> not sure if it is possible.
>>
>> Thanks,
>> Nick
>>
>

Reply via email to