Linux 调用sdp_记录_寄存器()时出现分段错误

Linux 调用sdp_记录_寄存器()时出现分段错误,linux,bluetooth,segmentation-fault,bluez,Linux,Bluetooth,Segmentation Fault,Bluez,我正在尝试使用BlueZ在SDP中注册我的蓝牙服务。我遵循教程。代码编译成功,但当我运行它时,会出现分段错误(即使粘贴了教程中的代码副本) 堆栈跟踪的一部分: { "address": 140382101864854 , "build_id": "a629c43f58d471aa12e35d3e63ee264c514a21ac" , "build_id_offset": 86422 , "function_name": "sdp_device_record_register_bi

我正在尝试使用BlueZ在SDP中注册我的蓝牙服务。我遵循教程。代码编译成功,但当我运行它时,会出现分段错误(即使粘贴了教程中的代码副本)

堆栈跟踪的一部分:

{   "address": 140382101864854
,   "build_id": "a629c43f58d471aa12e35d3e63ee264c514a21ac"
,   "build_id_offset": 86422
,   "function_name": "sdp_device_record_register_binary"
,   "file_name": "/lib64/libbluetooth.so.3"
}
, {   "address": 140382101865504
,   "build_id": "a629c43f58d471aa12e35d3e63ee264c514a21ac"
,   "build_id_offset": 87072
,   "function_name": "sdp_device_record_register"
,   "file_name": "/lib64/libbluetooth.so.3"
}
, {   "address": 140382101865738
,   "build_id": "a629c43f58d471aa12e35d3e63ee264c514a21ac"
,   "build_id_offset": 87306
,   "function_name": "sdp_record_register"
,   "file_name": "/lib64/libbluetooth.so.3"
}

有人也有同样的问题吗?

此分段错误来自Bluez 5中损坏的sdptool

解决这个问题的方法是在回答下面的Raspberry Pi stackoverflow问题时给出的


如果您发布失败的代码,并提供尽可能多的上下文,将有助于您获得答案。Bluez版本是什么?您不应该使用SDP从Bluez5执行此操作。我们在DBUS中有了
ProfileManager
接口,我尝试了与教程中的示例代码完全相同的代码,这就是为什么我没有在这里发布它。你说得对Parthiban我用的是BlueZ 5.50。我没有注意到它改变了注册服务的方式。非常感谢你@Linux中的Dluugi Bluez5作为守护进程提供DBUS接口来执行操作。您可以在Bluez source
doc
目录中找到它的文档。但是您也可以使用基于套接字的
libbluetooth
socket实现,但是我们不鼓励这样做。那么我如何使用libbluetooth实现呢?我认为实际上sdp_记录_寄存器应该用于此。你不能认为Bluez5坏了。这是故意删除的。我添加了
--compat
,就像链接所说的那样,我的
sdp\u记录\u寄存器仍然崩溃。