portaloffreedom / pipecontrol

Pipewire control GUI program in Qt (Kirigami2)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

the program does not start

NeformaliTu opened this issue · comments

Arch linux. pipewire 1:0.3.58-1. wireplumber 0.4.11-4

❯ pipecontrol
Compiled with libpipewire 0.3.58
Linked with libpipewire 0.3.58
object: id( 0 ) type( PipeWire:Interface:Core / 3 )
object: id( 1 ) type( PipeWire:Interface:Module / 3 )
object: id( 2 ) type( PipeWire:Interface:Module / 3 )
object: id( 4 ) type( PipeWire:Interface:Profiler / 3 )
object: id( 3 ) type( PipeWire:Interface:Module / 3 )
object: id( 5 ) type( PipeWire:Interface:Module / 3 )
object: id( 6 ) type( PipeWire:Interface:Factory / 3 )
object: id( 7 ) type( PipeWire:Interface:Module / 3 )
object: id( 8 ) type( PipeWire:Interface:Factory / 3 )
object: id( 9 ) type( PipeWire:Interface:Module / 3 )
object: id( 10 ) type( PipeWire:Interface:Factory / 3 )
object: id( 11 ) type( PipeWire:Interface:Module / 3 )
object: id( 12 ) type( PipeWire:Interface:Factory / 3 )
object: id( 13 ) type( PipeWire:Interface:Module / 3 )
object: id( 14 ) type( PipeWire:Interface:Factory / 3 )
object: id( 15 ) type( PipeWire:Interface:Module / 3 )
object: id( 16 ) type( PipeWire:Interface:Module / 3 )
object: id( 17 ) type( PipeWire:Interface:Module / 3 )
object: id( 18 ) type( PipeWire:Interface:Factory / 3 )
object: id( 19 ) type( PipeWire:Interface:Module / 3 )
object: id( 20 ) type( PipeWire:Interface:Factory / 3 )
object: id( 21 ) type( PipeWire:Interface:Module / 3 )
object: id( 22 ) type( PipeWire:Interface:Factory / 3 )
object: id( 23 ) type( PipeWire:Interface:Factory / 3 )
object: id( 24 ) type( PipeWire:Interface:Factory / 3 )
object: id( 25 ) type( PipeWire:Interface:Factory / 3 )
object: id( 26 ) type( PipeWire:Interface:Factory / 3 )
object: id( 27 ) type( PipeWire:Interface:Factory / 3 )
object: id( 28 ) type( PipeWire:Interface:Node / 3 )
Property[ object.serial ] = 28
Property[object.serial]=28
Property[ factory.id ] = 10
Property[factory.id]=10
Property[ priority.driver ] = 20000
Property[priority.driver]=20000
Property[ node.name ] = Dummy-Driver
Property[node.name]=Dummy-Driver
Adding new node "Dummy-Driver"
Adding node id( 28 ): "Dummy-Driver"
object: id( 29 ) type( PipeWire:Interface:Node / 3 )
Property[ object.serial ] = 29
Property[object.serial]=29
Property[ factory.id ] = 10
Property[factory.id]=10
Property[ priority.driver ] = 19000
Property[priority.driver]=19000
Property[ node.name ] = Freewheel-Driver
Property[node.name]=Freewheel-Driver
Adding new node "Freewheel-Driver"
Adding node id( 29 ): "Freewheel-Driver"
object: id( 30 ) type( PipeWire:Interface:Metadata / 3 )
zsh: segmentation fault (core dumped) pipecontrol
❯ sudo pipecontrol
[sudo] пароль для radiolin:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Compiled with libpipewire 0.3.58
Linked with libpipewire 0.3.58
terminate called after throwing an instance of 'std::runtime_error'
what(): Can't connect to pipewire
zsh: IOT instruction sudo pipecontrol
❯ sudo pipecontrol &
[1] 15333
~  QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'  ✔  
Compiled with libpipewire 0.3.58
Linked with libpipewire 0.3.58
terminate called after throwing an instance of 'std::runtime_error'
what(): Can't connect to pipewire

[1] + IOT instruction sudo pipecontrol

The error is obviously a segmentation fault (sudo is not necessary). Could you try running it with a debugger to tell me were the fault happens? a backtrace would be great

[ 5%] Automatic MOC and UIC for target pipecontrol
[ 5%] Built target pipecontrol_autogen
[ 10%] Generating resources/translations/pipecontrol_it_IT.ts
Scanning directory '/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4'...
Updating 'resources/translations/pipecontrol_it_IT.ts'...
Found 7 source text(s) (0 new and 7 already existing)
[ 15%] Automatic RCC for qml.qrc
[ 20%] Building CXX object CMakeFiles/pipecontrol.dir/pipecontrol_autogen/mocs_compilation.cpp.o
In file included from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/pipecontrol_autogen/LWJK3SHQDE/moc_qpipewirealsanode.cpp:10,
from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/pipecontrol_autogen/mocs_compilation.cpp:4:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/pipecontrol_autogen/LWJK3SHQDE/../../src/pw/qpipewirealsanode.h:28:30: предупреждение: «virtual bool QPipewireAlsaNode::isAlsa() const» может быть помечен override [-Wsuggest-override]
28 | Q_INVOKABLE virtual bool isAlsa() const { return true; }
| ^~~~~~
[ 25%] Building CXX object CMakeFiles/pipecontrol.dir/src/main.cpp.o
[ 30%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewire.cpp.o
In file included from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewire.cpp:22:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirealsanode.h:28:30: предупреждение: «virtual bool QPipewireAlsaNode::isAlsa() const» может быть помечен override [-Wsuggest-override]
28 | Q_INVOKABLE virtual bool isAlsa() const { return true; }
| ^~~~~~
[ 35%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewiremetadata.cpp.o
[ 40%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewiresettings.cpp.o
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewiresettings.cpp: В функции-члене «void QPipewireSettings::keyUpdated(uint32_t, const char*, const char*, const char*)»:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewiresettings.cpp:36:45: предупреждение: неиспользуемый параметр «id» [-Wunused-parameter]
36 | void QPipewireSettings::keyUpdated(uint32_t id, const char key, const char type, const char value)
| ~~~~~~~~~^~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewiresettings.cpp:36:78: предупреждение: неиспользуемый параметр «type» [-Wunused-parameter]
36 | void QPipewireSettings::keyUpdated(uint32_t id, const char key, const char type, const char value)
| ~~~~~~~~~~~~^~~~
[ 45%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewireclient.cpp.o
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireclient.cpp:50:1: предупреждение: отсутствует инициализатор для элемента «pw_client_events::permissions» [-Wmissing-field-initializers]
50 | };
| ^
[ 50%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewirenode.cpp.o
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenode.cpp: В функции-члене «void QPipewireNode::setProperty(const char
, QVariant)»:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenode.cpp:194:45: предупреждение: неиспользуемый параметр «key» [-Wunused-parameter]
194 | void QPipewireNode::setProperty(const char key, QVariant value)
| ~~~~~~~~~~~~^~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenode.cpp:194:59: предупреждение: неиспользуемый параметр «value» [-Wunused-parameter]
194 | void QPipewireNode::setProperty(const char key, QVariant value)
| ~~~~~~~~~^~~~~
[ 55%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewirealsanode.cpp.o
In file included from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirealsanode.cpp:19:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirealsanode.h:28:30: предупреждение: «virtual bool QPipewireAlsaNode::isAlsa() const» может быть помечен override [-Wsuggest-override]
28 | Q_INVOKABLE virtual bool isAlsa() const { return true; }
| ^~~~~~
[ 60%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewirelink.cpp.o
[ 65%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewireport.cpp.o
[ 70%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewireprofiler.cpp.o
In file included from /usr/include/spa-0.2/spa/utils/hook.h:32,
from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.h:19,
from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:17:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp: В функции-члене «void QPipewireProfiler::_profiler_profile(const spa_pod
)»:
/usr/include/spa-0.2/spa/utils/defs.h:322:33: предупреждение: «void
memset(void
, int, size_t)» clearing an object of non-trivial type «struct QPipewireProfiler::point»; use assignment or value-initialization instead [-Wclass-memaccess]
322 | #define spa_memzero(x,l) (memset((x), 0, (l)))
| ~~~~~~^~~~~~~~~~~~~
/usr/include/spa-0.2/spa/utils/defs.h:323:22: замечание: в расширении макроса «spa_memzero»
323 | #define spa_zero(x) (spa_memzero(&(x), sizeof(x)))
| ^~~~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:46:9: замечание: в расширении макроса «spa_zero»
46 | spa_zero(point);
| ^~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.h:40:12: замечание: «struct QPipewireProfiler::point» declared here
40 | struct point {
| ^~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp: В функции-члене «int QPipewireProfiler::process_driver_block(const spa_pod
, point
)»:
/usr/include/spa-0.2/spa/utils/defs.h:322:33: предупреждение: «void
memset(void
, int, size_t)» clearing an object of non-trivial type «struct QPipewireNode::measurement»; use assignment or value-initialization instead [-Wclass-memaccess]
322 | #define spa_memzero(x,l) (memset((x), 0, (l)))
| ~~~~~~^~~~~~~~~~~~~
/usr/include/spa-0.2/spa/utils/defs.h:323:22: замечание: в расширении макроса «spa_memzero»
323 | #define spa_zero(x) (spa_memzero(&(x), sizeof(x)))
| ^~~~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:112:5: замечание: в расширении макроса «spa_zero»
112 | spa_zero(measure);
| ^~~~~~~~
In file included from /home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.h:25:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenode.h:103:12: замечание: «struct QPipewireNode::measurement» declared here
103 | struct measurement {
| ^~~~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:128:30: предупреждение: comparison of integer expressions of different signedness: «int» and «uint32_t» {aka «unsigned int»} [-Wsign-compare]
128 | if (i && i->id() == id) {
| ~~~~~~~~^~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp: В функции-члене «int QPipewireProfiler::process_follower_block(const spa_pod*, point*)»:
/usr/include/spa-0.2/spa/utils/defs.h:322:33: предупреждение: «void* memset(void*, int, size_t)» clearing an object of non-trivial type «struct QPipewireNode::measurement»; use assignment or value-initialization instead [-Wclass-memaccess]
322 | #define spa_memzero(x,l) (memset((x), 0, (l)))
| ~~~~~~^~~~~~~~~~~~~
/usr/include/spa-0.2/spa/utils/defs.h:323:22: замечание: в расширении макроса «spa_memzero»
323 | #define spa_zero(x) (spa_memzero(&(x), sizeof(x)))
| ^~~~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:160:5: замечание: в расширении макроса «spa_zero»
160 | spa_zero(measure);
| ^~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenode.h:103:12: замечание: «struct QPipewireNode::measurement» declared here
103 | struct measurement {
| ^~~~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewireprofiler.cpp:176:30: предупреждение: comparison of integer expressions of different signedness: «int» and «uint32_t» {aka «unsigned int»} [-Wsign-compare]
176 | if (i && i->id() == id) {
| ~~~~~~~~^~~~~
[ 75%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/qpipewirenodelistmodel.cpp.o
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenodelistmodel.cpp: В функции-члене «virtual QVariant QPipewireNodeListModel::headerData(int, Qt::Orientation, int) const»:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenodelistmodel.cpp:141:49: предупреждение: неиспользуемый параметр «section» [-Wunused-parameter]
141 | QVariant QPipewireNodeListModel::headerData(int section, Qt::Orientation orientation, int role) const
| ~~~~^~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/pw/qpipewirenodelistmodel.cpp:141:74: предупреждение: неиспользуемый параметр «orientation» [-Wunused-parameter]
141 | QVariant QPipewireNodeListModel::headerData(int section, Qt::Orientation orientation, int role) const
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~
[ 80%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/media-session/alsaproperties.cpp.o
[ 85%] Building CXX object CMakeFiles/pipecontrol.dir/src/pw/utils.cpp.o
[ 90%] Building CXX object CMakeFiles/pipecontrol.dir/src/systemdservice.cpp.o
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/systemdservice.cpp: В функции-члене «bool SystemdService::checkIsRunning()»:
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/systemdservice.cpp:105:18: предупреждение: неиспользуемая переменная «jobqueued» [-Wunused-variable]
105 | uint jobqueued = busArgument.asVariant().toUInt();
| ^~~~~~~~~
/home/radiolin/Загрузки/pipecontrol/src/pipecontrol-0.2.4/src/systemdservice.cpp:76:36: предупреждение: неиспользуемая переменная «elementType» [-Wunused-variable]
76 | QDBusArgument::ElementType elementType = busArgument.currentType();
| ^~~~~~~~~~~
[ 95%] Building CXX object CMakeFiles/pipecontrol.dir/pipecontrol_autogen/EWIEGA46WW/qrc_qml.cpp.o
[100%] Linking CXX executable bin/pipecontrol
[100%] Built target pipecontrol

I hope this is what you need

no, this is just the compilation output.
I need you to run pipecontrol that you just compiled (I think you probably compiled with debug enabled)
with a debugger. There are several graphical debuggers, but the terminal can also be used like this:

$ gdb path/to/pipecontrol
(gdb) start
(gdb) continue
[... crash happens..]
(gdb) backtrace

The last command will print the location where the invalid memory access happened