portaloffreedom / pipecontrol

Pipewire control GUI program in Qt (Kirigami2)
GNU General Public License v3.0
48 stars 2 forks source link

the program does not start #4

Open radiolamp opened 1 year ago

radiolamp commented 1 year ago

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

portaloffreedom commented 1 year ago

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

radiolamp commented 1 year ago

[ 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

portaloffreedom commented 1 year ago

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