Open radiolamp opened 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
[ 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
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