我是这个领域的新手。
我已经通过源代码在VM (centOS)上安装了Fiware-orion,下面的链接是:https://fiware-orion.readthedocs.io/en/master/admin/build_source/index.html。目前我正在处理Fiware-Orion问题,但我不知道如何调试Fiware-Orion。我已经搜索过google和Fiware-Orion的官方文档,但是我没有找到任何与Fiware-Orion调试相关的文档/材料。
我已经找到了一些与Orion调试相关的命令(但我不知道这些命令是否正确),我遵循以下命令:
->首先从源代码安装orion,然后安装mongoDB,
./BUILD_DEBUG/src/app/contextBroker/contextBroker -port 1026curl localhost:1026/version./BUILD_DEBUG/src/app/contextBroker/contextBroker -tui[root@localhost fiware-orion]# gdb ./BUILD_DEBUG/src/app/contextBroker/contextBroker
GNU ( gdb ) RedHatEnterpriseLinux7.6.1-100.el7版权(C) 2013年自由软件基金会( Foundation,Inc. )许可GPLv3+:GNU版本3或更高版本http://gnu.org/licenses/gpl.html这是免费软件:您可以自由地更改和重新分发它。在法律允许的范围内,没有任何保证。输入“显示复制”和“显示保修”以获取详细信息。这个GDB被配置为"x86_64-redhat-linux-gnu“。有关错误报告说明,请参见:http://www.gnu.org/software/gdb/bugs/.从/root/workingDir/fiware-orion/BUILD_DEBUG/src/app/contextBroker/contextBroker...done.读取符号(gdb) b 101断点1在0x6033c9处:文件/root/workingDir/fiware-orion/src/app/contextBroker/contextBroker.cpp,行101。(gdb)运行启动程序:使用使用主机/root/workingDir/fiware-orion/./BUILD_DEBUG/src/app/contextBroker/contextBroker库启用的libthread_db进行libthread_db线程调试“/lib64 64/lib线程_db.so.1”。断点1,/root/workingDir/fiware-orion/src/app/contextBroker/contextBroker.cpp:371 371的fileExists (path=0xbfc380 "/tmp/contextBroker.pid"),如果(access(path,F_OK) == 0)缺少单独的调试器,使用:调试器-安装boost-文件系统-1.53.0-27.el7.x86_64 boost-regex-1.53.0-27.el7.x86_64 boost-系统-1.53.0-27.el7.x86_64 boost-线程-1.53.0-27.el7.x86_64 cyrus-sasl-lib-2.1.26-23.el7.x86_64 glibc-2.17-292.el7.x86_64 gmp-6.0.0-15.el7.x86_64gnutls-3.3.29-9.el7_6.x86_64键盘-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libcom_err-1.42.9-16.el7.x86_64 libcurl-7.29.0-54.el7_7.1.x86_64 libffi-3.0.13-18.el7.x86_64 libgcc-4.8.5-39.el7.x86_64 libgcrypt-1.5.3-14.el7.x86_64 libgpg-1.12-3.el7.x86_64 libstdc 50.1.2-15.el7.x86_64 libselinux 1.28-4.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 libssh2-1.8.0-3.el7.x86 libstdc++4.8.5-39.el7.x86_64 libtasn1-4.10-1.1.x86_64 libuuid-2.23.2-61.el7_7.1.x86_64荨麻-2.7.1-8.el7.x86_64 nspr-4.21.0-1.el7.x86_64 nss-3.44.0-7.el7_x86_64 nss-软令牌-免费-3.44.0-8.el7_7.x86_64 nss-util-3.44.0-4.el7_7.x86_64 openldap-2.4.44-5.el7.x86_64 openldaplibs-1.0.2k-19.el7.x86_64 p11-kit-0.23.5-3.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64 (gdb)列表366 * 367 * fileExists - 368 * 369静态bool fileExists(char* path) 370 { 371 (访问路径,F_OK) == 0) 372 { 373返回真;374 } 375 (gdb) n 376返回false;(gdb) n 377 } (gdb) n pidFile (justCheck=true) at pidFile 397 if (justCheck == true) (gdb)打印justCheck $1 = true (gdb)列表876 { 877 LM_X(1,“致命错误(使用选项'-https‘,选项'-cert’是强制性的)”);878 } 879 } 880 881 notificationModeParse(notificationMode,ificationQueueSize,notificationThreadNum);//应在contextBrokerInit() 882 LM_T(LmtNotifier,“通知模式:'%s',队列大小:%d,num线程%d,notificationMode,notificationQueueSize,notificationThreadNum)之前调用;883 LM_I(”Orion上下文代理正在运行“);884 885 if (fg == false) (gdb) n 882 LM_T(“通知模式:‘'%s',队列大小:%d,num线程%d",notificationMode,notificationQueueSize,notificationThreadNum);(gdb)步骤883 LM_I(”猎户座上下文代理正在运行“);(gdb)当我使用skip(即's')命令进入函数时,,但是它移动到下一行。我不知道我在哪里出错。
实际上,我想调试https://github.com/telefonicaid/fiware-orion/blob/master/src/lib/ 文件夹中存在的文件,但是我无法到达那里。即使是,我也不能离开fiware-orion/src/app/contextBroker/contextBroker.cpp 类.
有人能建议我正确的命令来调试Fiware-Orion,或者告诉我我在哪里出错,请。
是否有任何关于调试Fiware-Orion的适当文档可用?
发布于 2020-03-16 07:57:19
要调试Orion,您需要在调试模式下编译它。您安装的发行版不是。要获得可调试的Orion,您必须从源代码构建它,并编译它以进行调试。
要从源代码构建Orion,请查看这里的文档:source.md。
使用make目标"di“构建Orion,它代表”调试安装“。
祝好运!
发布于 2020-03-17 13:08:32
如果您只是想提高Orion本身的调试级别,那么命令行参数就是:
orion -logLevel DEBUG -t 0-255 -noCache -logForHumans例如,在使用Dockerized时,可以使用以下docker-compose:
orion:
image: fiware/orion:${ORION_VERSION}
hostname: orion
container_name: fiware-orion
depends_on:
- mongo-db
networks:
- default
expose:
- "${ORION_PORT}"
ports:
- "${ORION_PORT}:${ORION_PORT}" # localhost:1026
command: -dbhost mongo-db -logLevel DEBUG -noCache -logForHumans
healthcheck:
test: curl --fail -s http://orion:${ORION_PORT}/version || exit 1发布于 2020-03-21 14:05:00
在我的例子中,我使用QtCreator作为IDE (特别是3.5.1版,有点老了,但它起作用了:)。QtCreator与gdb集成得很好,因此很容易在调试模式下运行Orion,在图形代码编辑器中设置断点,然后用请求刺激Orion,看看它是如何运行的(断点到达,等等)。
https://stackoverflow.com/questions/60690992
复制相似问题