Exception stack traces on freebsd

crungecrunge Member Constantin RungeOrganization: PPRO Financial Ltd.Project: payment service provider
edited September 2017 in Help Center

Is there a specific reason, why exception stack traces are disabled on freebsd? cpp/src/IceUtil/Exception.cpp:32 disables these when __FreeBSD__ is defined. From a quick glance at the system (FreeBSD 10.3) it seems, that backtrace() as well as backtrace_symbols() are available.

I'm currently compiling ice 3.6.3 without the !defined(__FreeBSD__) and will test what happens.

Tagged:

Answers

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    edited September 2017

    Hi Constantin,

    We currently don't build or test Ice on FreeBSD, but we accept pull requests for FreeBSD and other platforms we don't support. If you want to add support for exception stack traces, please submit a pull request! This pull request should be preferably for the branch you're patching (3.6 or 3.7).

    If you are interested in exception stack traces (a top Ice feature :wink:), we actually improved them for Ice 3.7, with support for libbacktrace (with some compilers):
    https://github.com/zeroc-ice/ice/blob/3.7/cpp/src/IceUtil/UtilException.cpp#L39
    https://github.com/zeroc-ice/ice/blob/3.7/cpp/src/IceUtil/Makefile.mk#L13
    https://github.com/zeroc-ice/ice/blob/3.7/config/Make.rules.Linux#L180

    And if you want to stay with Ice 3.6 for now, you should upgrade to the just released Ice 3.6.4.

    All the best,
    Bernard

  • crungecrunge Member Constantin RungeOrganization: PPRO Financial Ltd.Project: payment service provider
    edited September 2017

    Hi Bernard,

    thanks for the answer. From a quick round of patching and testing it looks like stacktraces for Ice 3.6 work completely fine on FreeBSD 10.0 and onwards. Then the port just requires the additional dependency devel/libexecinfo.
    As I changed the goal I want to achieve a bit, I do not need the stacktraces 'urgently' anymore, so I did not dig deeper.

    libbacktrace support sounds awesome though. Makes stack traces more portable and easier maintainable. Great change.

    Best regards,
    Constantin

Sign In or Register to comment.