Skip to content

Is there a way to include debug info? #146

@alexcasalboni

Description

@alexcasalboni

When the .wasm file raises an error, the resulting backtrace does not contain any reference to the original source files (even using wasmtime::WasmBacktraceDetails::Enable).

With Rust and Go components it's possible to use compile-time flags such as --release or -no-debug to control whether debug info is included or not in the .wasm file. So I was wondering if the same would be possible with componentize-py?

Here's an example of the backtrace I get on error (where the only useful reference to my component's code is line 28):

Error: Failed to call component: error while executing at wasm backtrace:
    0: 0xa9b968 - wit-component:adapter:wasi_snapshot_preview1!<wasm function 34>
    1: 0x2230183 - wit-component:shim!adapt-wasi_snapshot_preview1-fd_write
    2: 0x21b2244 - libc.so!__wasi_fd_write
    3: 0x21b1a9f - libc.so!write
    4: 0x14934 - <unknown>!<wasm function 782>
    5: 0xeba24e - _Py_write_impl
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/fileutils.c:1962:17              - _Py_write
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/fileutils.c:2033:12
    6: 0xf9dffd - _io_FileIO_write_impl
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Modules/_io/fileio.c:874:9              - _io_FileIO_write
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Modules/_io/clinic/fileio.c.h:388:20
    7: 0xd16038 - method_vectorcall_FASTCALL_KEYWORDS_METHOD
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/descrobject.c:387:24
    8: 0xd09540 - _PyObject_VectorcallTstate
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11              - PyObject_VectorcallMethod
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:887:24
    9: 0xfab74b - PyObject_CallMethodOneArg
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/cpython/abstract.h:103:12              - _textiowrapper_writeflush
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Modules/_io/textio.c:1629:15
   10: 0xfacee3 - _io_TextIOWrapper_write_impl
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Modules/_io/textio.c:1759:13              - _io_TextIOWrapper_write
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Modules/_io/clinic/textio.c.h:680:20
   11: 0xd64d6e - cfunction_vectorcall_O
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:509:24
   12: 0xd084da - _PyObject_VectorcallTstate
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11              - PyObject_CallOneArg
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:401:12
   13: 0xd291f6 - PyFile_WriteObject
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/fileobject.c:132:14
   14: 0xd292e5 - PyFile_WriteString
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/fileobject.c:156:15
   15: 0xeab96b - _Py_WriteIndentedMargin
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/traceback.c:430:13              - _PyTraceBack_Print_Indented
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/traceback.c:1078:9
   16: 0xe96e54 - print_exception_traceback
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:911:15              - print_exception
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:1180:9
   17: 0xe96465 - print_exception_recursive
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:1474:13
   18: 0xe96122 - _PyErr_Display
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:1524:9
   19: 0xe9600c - PyErr_Display
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:1556:5
   20: 0xea872d - sys_excepthook_impl
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/sysmodule.c:772:5              - sys_excepthook
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/clinic/sysmodule.c.h:102:20
   21: 0xd64ea4 - cfunction_vectorcall_FASTCALL
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/methodobject.c:422:24
   22: 0xd08285 - _PyObject_VectorcallTstate
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:92:11              - _PyObject_FastCallTstate
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Include/internal/pycore_call.h:116:12              - _PyObject_FastCall
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Objects/call.c:334:12
   23: 0xe94994 - _PyErr_PrintEx
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:807:28
   24: 0xe96049 - PyErr_PrintEx
                    at /home/runner/work/componentize-py/componentize-py/cpython/builddir/wasi/../../Python/pythonrun.c:845:5
   25: 0x12f52 - <unknown>!<wasm function 291>
   26: 0xaf3c63 - libcomponentize_py_runtime.so!pyo3::err::PyErr::print::hbb86b960398edf90
   27: 0xadda83 - libcomponentize_py_runtime.so!componentize-py#Dispatch
   28: 0x221c1db - libcomponentize_py_bindings.so!edgee:components/data-collection#page-export

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions