Thanks Walter I realized that I had multiple gnuradio versions installed even though I thought I checked that. I completely wiped all my gnu radio files, pulled in the latest version 3.10.10.0 and built using the -DCMAKE_BUILD_TYPE=Debug, and now I can successfully debug the existing DTV code. The python code must have been importing a module from gnuradio in another directory, which caused it to not recognized any of my edits or breakpoints in the file I was working on.
Matt On Tue, Apr 23, 2024 at 7:41 PM walter <wal...@hacktuary.ai> wrote: > Hi Matt, > > I'm not sure if this is an apples-to-apples situation, but your issue > sounds exactly like something I've run into while abusing Python snippets. > It was easy to avoid after understanding order-of-events for block > creation. > > I suspect this is language-independent, and you can quickly create a > python flowgraph / review the code - it will illustrate the principles: > > 1. Create a python flowgraph 'FOO.grc' with minimal blocks (e.g. [signal > source] --> [throttle2] --> [null sink]). > > 2. Add four [Python Snippet] blocks - one for each type of [Section of > Flowgraph] param: 'Init - Before Blocks', 'Main - After Start', etc. > > 3. For each Python Snippet block, add a one-line snippet distinct to the > [Section of Flowgraph], for example: > > print("Hello IAMA Init - Before Blocks") > # NOTE: it's important to have a least one line of code or nothing will be > generated for the snippet! > > 4. Set the Title param of the [Options] block (top block) to "FOO". > > 5. Press [F5] to generate the flowgraph code, which will be called FOO.py > (in same directory as FOO.grc). > > 6. Examine the resulting FOO.py script in VSCode - in particular, where > each of the snippets are invoked. > > The most obvious example is that in 'Init - Before Block' it's possible to > reference a block or variable self.X before self.X has been instantiated. > > More subtle cases are possible, depending on how clever one tries to be > when using this mechanism. > > - W > > Attached: screencap of example error (take my word that the block 'radio' > exists). I can send a shot of the flowgraph, but it probably wouldn't shed > further light. > > [image: flowgraph_has_no_attr_radio.png] > > > On Apr 23, 2024, at 13:46, Matt Clemons <mattclem...@gmail.com> wrote: > > Hello, > > I've walked through tutorials and successfully set breakpoints and > debugged OOT modules in Gnu Radio using the DCMAKE_BUILD_TYPE=Debug option. > However, I'm trying to debug local changes I've made to existing > gnuradio/dtv/ files and not having success. > > I've followed the steps in a similar question/email chain here: > https://lists.gnu.org/archive/html/discuss-gnuradio/2021-08/msg00008.html > (I wasn't sure if replying to this old chain with a question or referencing > it was better, let me know if there is a preference for future scenerios). > > I also tried recompiling all of the gnu radio source code on my machine > with the DCMAKE_BUILD_TYPE=Debug option and still can not get VScode to > stop on my set breakpoint within the > dtv/dvbt_demod_reference_signals_impl.cc file. The flowchart runs, and > completes but when I hover over the break point it just says "Module > containing this breakpoint has not yet loaded or the address could not be > obtained". > > Any suggestions? I don't like the option of copying this into an OOT > module just to debug. I'm not sure I understand the difference either. > > Thanks, > > Matt > > >