Is meetecho using a development ide these days or still using text editor and bash

204 views
Skip to first unread message

voll...@googlemail.com

unread,
Apr 6, 2021, 7:23:41 AM4/6/21
to meetecho-janus
It´s time to fork and improve things were i see benefits to do so.

Before i start i wanted to know which ide meetecho is using to develop/debug janus or if you are still just using a text-editor and the bash to compile.

I do wonder as the last post to this topic is from 2015 and i would expect things to have changed (improved:))

I know that janus is real time, so debugging does not really make sense while media is beeing handled. But if i want to trouble shoot things like initialization it might be helpful to just have an ide where you can place breakpoints and check structures while the code is being executed.

IDEs that come to my mind:
- KDevelop
- Eclipse
- CLion
- VScode

Jan

Alessandro Toppi

unread,
Apr 6, 2021, 10:25:44 AM4/6/21
to meetecho-janus
fwiw this is my configuration
- ide: VScode (replaced Eclipse), C support is okay but still not perfect
- compiling: shell (with customized helper scripts)
- debugging online/offline: gdb and linux shell tools

Lorenzo Miniero

unread,
Apr 6, 2021, 11:48:55 AM4/6/21
to meetecho-janus
Same as Alessandro on compiling/debugging, but I don't like IDEs. I use Geany as an editor, as it does have syntax highlighting and a few other features but is not bloated like a full IDE.

L.

sergey radionov

unread,
Apr 6, 2021, 11:16:00 PM4/6/21
to meetecho-janus
I would recommend you add QtCreator to consider  list:
1. It can work with different build systems
2. It has GDB support
3. It has vim emulator
4. It has dark theme
5. It's cross platform

voll...@googlemail.com

unread,
Apr 8, 2021, 9:37:24 AM4/8/21
to meetecho-janus
I gave VSCode a try but i am a bit struggling...

I can run and compile and debug janus 💪, so the environment should be setup properly.

Where i am struggling is the proper config within the c_cpp_properties.json for vscode to browse through all the files.

I took the defines from the make output.
But i am likely missing some include paths which the configure and make properly handle but i am not fully aware of.
(I´ve been coding c++ since 20 years under windows which is kind of different to the way things are done in unix/linux)

I placed the current c_cpp_properties.json i am using in pastbin:

If i am now browsing the code several headers are not resolved and i am struggling in finding the proper reference for them.

e.g.
* struct timeval
* struct addrinfo
** incomplete type is not allowed (timeval addrinfo are not resolved)

* identifier "uint" is undefined
* identifier "IFNAMSIZ" is undefined

* references to mach in mach_gettime.h

Would you share your vscode config to check whats missing on my side?

Thanks in advance,
have a great weekend and nice people around you,
i need to go to hospital tomorrow get rid of some (dead) metal in my shoulder :)

Jan

Alessandro Toppi

unread,
Apr 8, 2021, 11:24:14 AM4/8/21
to meetecho-janus
These are my C/C++ settings from settings.json
(environment is gcc on Ubuntu 20) 

"C_Cpp.default.compilerPath": "/usr/bin/gcc",
"C_Cpp.default.cStandard": "gnu11",
"C_Cpp.default.cppStandard": "gnu++17",
"C_Cpp.default.includePath": [
  "${workspaceFolder}/**",
  "/usr/lib/x86_64-linux-gnu/glib-2.0/include",
  "/usr/include/glib-2.0",
  "/usr/include/nice",
  "/usr/include/sofia-sip-1.12"
],
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.default.systemIncludePath": [
  "/usr/lib/gcc/x86_64-linux-gnu/9/include",
  "/usr/local/include",
  "/usr/include/x86_64-linux-gnu",
  "/usr/include"
],
"C_Cpp.updateChannel": "Insiders",
"C_Cpp.default.browse.limitSymbolsToIncludedHeaders": false

Alessandro Toppi

unread,
Apr 8, 2021, 11:35:28 AM4/8/21
to meetecho-janus
And this is my c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${default}"
            ],
            "defines": [
                "CONFDIR=\"\"",
                "EVENTDIR=\"\"",
                "HAVE_LIBCURL=1",
                "HAVE_LIBOGG=1",
                "HAVE_LIBOPUS=1",
                "HAVE_SCTP=1",
                "HAVE_SRTP_2=1",
                "LOGGERDIR=\"\"",
                "PLUGINDIR=\"\"",
                "TRANSPORTDIR=\"\""
            ]
        }
    ],
    "version": 4
}

voll...@googlemail.com

unread,
Nov 16, 2021, 5:30:50 AM11/16/21
to meetecho-janus
Thanks for updating the documentation here https://janus.conf.meetecho.com/docs/ide.html
I can debug janus but it turns out that breakpoints are not always hit and serval symbols are optimized out.


I tried to change the configure to create a debug build but it looks like i am missing something (as mentioned i am the visual studio developer, so not super familiar with configure and make)

I added CPPFLAGS=-DDEBUG CFLAGS="-g -O0" to the configure command an triggert a new make but the problem persists.
Stuff is optimized out and breakpoints are not 100% hit

The full configure (sure, special to the plugins i am using) looks like this.
./configure CPPFLAGS=-DDEBUG CFLAGS="-g -O0" --prefix=/opt/janus --enable-libstrp2 --enable-boringssl --enable-dtls-settimeout --disable-data-channels --disable-all-plugins --enable-plugin-videoroom=yes --disable-all-transports --enable-rest=yes --enable-websockets=yes --disable-all-handlers --enable-websockets-event-handler=yes

I also adde the launch.json config and the helper launch_gdb (to sudo the launch) i am using which might also be helpful for people new to vscode/debugging janus (to add it to https://janus.conf.meetecho.com/docs/ide.htm)

Reply all
Reply to author
Forward
Message has been deleted
0 new messages