VSCode Debugger throws maximum recursion depth error when running Basilisk messaging code

396 views
Skip to first unread message

Mark Lai

unread,
Jul 31, 2021, 10:33:49 AM7/31/21
to Basilisk Forum
Hi,

I was wondering if anyone has successfully stepped through Basilisk messaging code using a debugger.

This is my current environment:

Ubuntu 20.04.2 LTS, Focal
VSCode 1.58.2, c3f126316369cd610563c75b1b1725e0679adfb3, x64
Basilisk 2.0.5b0

When having the VSCode debugger run a line containing messaging code e.g. break at line 363 of scenarioAttitudeGuidance.py (attached) and then continue

```python
    mrpLog = mrpControlConfig.cmdTorqueOutMsg.recorder(samplingTime)
```
the following maximum recursion depth error is thrown

```cmd
appuser@ubuntu-VirtualBox:~/gc3_ws$  cd /home/appuser/gc3_ws ; /usr/bin/env /bin/python3 /home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/launcher 35135 -- /home/appuser/gc3_ws/simulation_engine_pkg/zzz_sandbox/bsk_examples/scenarioAttitudeGuidance.py 
Traceback (most recent call last):
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 377, in __call__
    if cache_skips.get(frame_cache_key) == 1:
RecursionError: maximum recursion depth exceeded in comparison
Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized

Thread 0x00007f2978b99700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 306 in wait
  File "/usr/lib/python3.8/threading.py", line 558 in wait
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 245 in _on_run
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f297939a700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 306 in wait
  File "/usr/lib/python3.8/threading.py", line 558 in wait
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 199 in _on_run
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2979c5b700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 302 in wait
  File "/usr/lib/python3.8/threading.py", line 558 in wait
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py", line 43 in _on_run
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f297a45c700 (most recent call first):
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 219 in _read_line
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 237 in _on_run
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f297ac5d700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 306 in wait
  File "/usr/lib/python3.8/queue.py", line 179 in get
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 382 in _on_run
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Current thread 0x00007f297c132740 (most recent call first):
  File "/home/appuser/.vscode-server/extensions/ms-python.python-2021.7.1060902895/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 371 in __call__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28367 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr__
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28317 in __record_vector
  File "/gc3_libraries/basilisk/dist3/Basilisk/architecture/messaging.py", line 28368 in __getattr_


```

scenarioAttitudeGuidance.py

benjamin....@u-space.fr

unread,
Jul 31, 2021, 10:48:34 AM7/31/21
to Basilisk Forum
Hi Mark, 

I'm using pdb to manually set up breakpoints in python and have no such issues myself. I've also used it in conjunction with gdb (on Linux) and have had no problems doing so.

Have you tried setting a breakpoint in the corresponding line of messaging.py ? This file is generated everytime Basilisk is compiled and should contain the auto-coded lines containing the definition of the CmdTorqueBodyMsg (the type of cmdTorqueOutMsg) message and recorder you are trying to instantiate. This may help narrowing down on the issue.

Ben

Mark Lai

unread,
Jul 31, 2021, 4:34:16 PM7/31/21
to Basilisk Forum
Pdb works!!! =)

A follow on question, for the snTransLog object, would you know the reason why I might not see the variables timeTag, r_BN_N, v_BN_N, when
I query the object with vars() or dir()?

```cmd
appuser@ubuntu-VirtualBox:~/gc3_ws$ /bin/python3 /home/appuser/gc3_ws/simulation_engine_pkg/zzz_sandbox/bsk_examples/scenarioAttitudeGuidance.py
> /home/appuser/gc3_ws/simulation_engine_pkg/zzz_sandbox/bsk_examples/scenarioAttitudeGuidance.py(405)run()
-> dataTimeTag = snTransLog.timeTag
(Pdb) l .
400         #
401         dataLr = mrpLog.torqueRequestBody
402         dataSigmaBR = attErrLog.sigma_BR
403         dataOmegaBR = attErrLog.omega_BR_B
404         breakpoint()
405  ->     dataTimeTag = snTransLog.timeTag
406         dataPos = snTransLog.r_BN_N
407         dataVel = snTransLog.v_BN_N
408         dataSigmaBN = snAttLog.sigma_BN
409  
410         print(f"dataTimeTag={dataTimeTag}")
(Pdb) vars(snTransLog)
{'this': <Swig Object of type 'Recorder< NavTransMsgPayload > *' at 0x7fd951bf87b0>}
(Pdb) dir(snTransLog)
['CallCounts', 'IntegratedInit', 'ModelTag', 'RNGSeed', 'Reset', 'SelfInit', 'UpdateState', '_NavTransMsgRecorder__record_vector', '_NavTransMsgRecorder__timeWritten_vector', '_NavTransMsgRecorder__time_vector', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__swig_destroy__', '__weakref__', 'bskLogger', 'clear', 'explore_and_find_subattr', 'findMsgName', 'moduleID', 'record', 'this', 'thisown', 'times', 'timesWritten', 'updateTimeInterval']
```cmd
Reply all
Reply to author
Forward
0 new messages