Skip to content

[Bug] debug_get_output function of debug_executor reports error in parameter passing. #16490

@youxiudeshouyeren

Description

@youxiudeshouyeren

In the debug_executor's debug_get_output function, the out parameter can be set to None, but in the C++ implementation of the function, there is no check to see if the out parameter is None, which can result in the program reporting an error without a prompt. The details are as follows:

  1. debug_get_output function in tvm/python/tvm/contrib/debugger/debug_executor.py
    image

  2. C++ implementation in tvm/src/runtime/graph_executor/debug/graph_executor_debug.cc. This function has no return value and copies Ndarray directly to the out parameter in python.
    image

  3. When out is None, this will raise a direct error: segment fault
    image

I would like to raise a pr to address this issue. Now there are two choices:

  1. check at python level that this out parameter cannot be None.
  2. check the number of arguments in C++ and return Ndarray directly when out is None. This operation has the same behavior as get_output function in executor.
    I prefer the second choice. Thanks for reading and what do you suggest?

@Hzfengsy

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions