专栏算法工具链关于J6E的gdb调试问题

关于J6E的gdb调试问题

已解决
默认682882024-12-27
86
11

我通过VScode调试我的代码,会出现下图问题

我发现进程qemu-riscv的没有成功运行起来,所以一直卡在这边,没办法运行下去

我gdbinit文件设置的是如下,只想断点调试我父进程的代码

set follow-fork-mode parent
Description
算法工具链
征程6
评论3
0/1000
  • 默认68288
    Lv.1

    点错了,还未解决问题

    2024-12-27
    0
    0
  • Huanghui
    Lv.5

    你们用的工具链版本版本多少?哪代芯片?

    2024-12-27
    0
    1
    • 默认68288回复Huanghui:
      horizon_j6_open_explorer_v3.0.22-py310_20240924的包
      J6E的
      我用了里面build_x86.sh编译的,添加了-g,打算单步调试的
      2024-12-30
      0
  • Huanghui
    Lv.5

    你这个是啥,在使用算法工具链的过程中遇到的?怎么还在用QEMU?

    2024-12-27
    0
    7
    • 默认68288回复Huanghui:

      在PC仿真部署的时候, 运行hbDNNInferV2 和 hbUCPSubmitTask 和 hbUCPWaitTaskDone 三个函数,这几个函数应该有调用fork,创建一个子进程,然后调用了qemu

      2024-12-27
      0
    • Huanghui回复默认68288:

      你好,我这边今天又重新试了一下,是可以单步调试的,下面是单步的日志,至于 API的调用本来就是无法进入到其中的:

      2025-01-06
      1
    • 默认68288回复Huanghui:

      我也到了这一步,再也下不去下一个断点了

      2025-01-07
      0
    • 默认68288:

      虽然跳出来这个打印,我感觉里面也没在正常推理,如果你这边成功的话,到时候可以告诉我一下你的gdbinit是怎么配置的

      2025-01-07
      0
    • 默认68288:

      我不需要进到子进程的推理,我下面还有一个断点,当推理结果出来的时候,进行后处理,但是一直等不到推理结束

      2025-01-07
      0
    • Huanghui回复默认68288:

      我这边复现的情况跟你是一样的,实际上都不需要打断点,进入gdb调试后直接run就能看到现象:推理没法正常结束。set follow-fork-mode child后也确实是可以看到调用了qumo的东西。但GDB调试功能目前不在工具链的维护范围,也不属于工具链的发布范畴,所以暂时没有相关的更多的支持。

      我这里给你一个建议:将程序分两段进行,第一次运行第一段判断推理结果文件是否存在,不存在执行推理并存储推理结果,这部分不需要GDB,直接运行时没有问题的;第二次运行第二段推理结果文件存在时运行你的后处理逻辑,这部分是可以gdb的。

      2025-01-07
      0
    • 默认68288回复Huanghui:

      非常感谢你的解答,后续工具链如果解决了这个问题,告知我一下,谢谢!

      2025-01-07
      0