google-ai-edge / mediapipe

Cross-platform, customizable ML solutions for live and streaming media.
https://ai.google.dev/edge/mediapipe
Apache License 2.0
27.27k stars 5.13k forks source link

Mediapipe debugging in VScode #2197

Closed zzmicer closed 3 years ago

zzmicer commented 3 years ago

Is there any method/plugin to debug C++ mediapipe code in Visual Studio Code?

sgowroji commented 3 years ago

Hi @zzmicer, Could you please share whether you are not able to debug using this. And what is the error while trying with it. Thanks!

zzmicer commented 3 years ago

Hi @sgowroji, I try to debug Hand Tracking solution. I've already built it with bazel build -c dbg --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu

This is my configuration for launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "LaunchDBG",
            "type": "cppdbg",
            "request": "launch",
            "program": "{my_path_to_mediapipe_repo}/bazel-out/k8-dbg/bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu",
            "args": [],
            "stopAtEntry": false,
            "cwd": "{my_path_to_mediapipe_repo}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

When I launch debugging in VScode I get: &"warning: GDB: Failed to set controlling terminal: Operation not permitted\n" And then: E20210622 16:16:44.424080 13715 demo_run_graph_main.cc:154] Failed to run the graph: ; Can't find file: [1] + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-umj2pouj.kvu" 1>"/tmp/Microsoft-MIEngine-Out-t565qo5v.ubg"

DEBUG CONSOLE LOG:

=thread-group-added,id="i1"
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
=cmd-param-changed,param="pagination",value="off"
Stopped due to shared library event (no libraries added or removed)
Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, main (argc=1, argv=0x7fffffffcd18) at mediapipe/examples/desktop/demo_run_graph_main.cc:150
150   google::InitGoogleLogging(argv[0]);
Loaded '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libm.so.6'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_calib3d.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_core.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_features2d.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_highgui.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_imgcodecs.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_imgproc.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_video.so.4.5'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_videoio.so.4.5'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libpthread.so.0'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libdl.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libgcc_s.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libc.so.6'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_flann.so.4.5'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/librt.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgtk-3.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgdk-3.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libcairo.so.2'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/opencv/lib/libopencv_dnn.so.4.5'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libX11.so.6'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXi.so.6'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXfixes.so.3'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libatk-1.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libepoxy.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libfontconfig.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXinerama.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXrandr.so.2'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXcursor.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXcomposite.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXdamage.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libwayland-egl.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libwayland-client.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXext.so.6'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libpixman-1.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libfreetype.so.6'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libpng16.so.16'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libxcb.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libxcb-render.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXrender.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libz.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libffi.so.6'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libpcre.so.3'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/deployment_tools/inference_engine/lib/intel64/libinference_engine.so'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/deployment_tools/ngraph/lib/libngraph.so'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libdbus-1.so.3'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libatspi.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libthai.so.0'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libexpat.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libselinux.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libresolv.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libmount.so.1'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXau.so.6'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libXdmcp.so.6'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/deployment_tools/inference_engine/external/tbb/lib/libtbb.so.2'. Symbols loaded.
Loaded '/opt/intel/openvino_2021/deployment_tools/inference_engine/lib/intel64/libinference_engine_transformations.so'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libsystemd.so.0'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libgraphite2.so.3'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/libdatrie.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libblkid.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libbsd.so.0'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/liblzma.so.5'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/liblz4.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libgcrypt.so.20'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libuuid.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libgpg-error.so.0'. Symbols loaded.
[Inferior 1 (process 14487) exited with code 01]
The program '/home/zmicer/Dev/iomico/mediapipe-iomicoml/bazel-out/k8-dbg/bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu' has exited with code 1 (0x00000001).
zzmicer commented 3 years ago

Also, I get this error window in VScode Screenshot from 2021-06-22 16-38-52

sgowroji commented 3 years ago

Hi @zzmicer, After investigating the above with my team. We general use terminal or command prompt to build and run the code. We are not sure with your error. Thanks!

chendadon commented 3 years ago

Hi @zzmicer, After investigating the above with my team. We general use terminal or command prompt to build and run the code. We are not sure with your error. Thanks!

Hi, can you share the way you are debugging the code? even from cmd

sgowroji commented 3 years ago

Hi @chendadon, We don't recommend any as of now. but you can try doing with VScode from here https://docs.microsoft.com/en-us/visualstudio/debugger/quickstart-debug-with-cplusplus?view=vs-2019

google-ml-butler[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you.

google-ml-butler[bot] commented 3 years ago

Closing as stale. Please reopen if you'd like to work on this further.

Soberii commented 1 year ago

WARNING: Logging before InitGoogleLogging() is written to STDERR F20230407 13:25:36.869844 27284 collection.h:55] Failed to get tag "C2PACKET" index 0 Check failure stack trace: F20230407 13:25:36.869844 8704 collection.h:55] Failed to get tag "C2PACKET" index 0