Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unintelligible crash stacktrace #740

Open
justhecuke opened this issue Nov 7, 2022 · 1 comment
Open

Unintelligible crash stacktrace #740

justhecuke opened this issue Nov 7, 2022 · 1 comment

Comments

@justhecuke
Copy link

Right now, if Redex crashes inside of a walk::parallel::* method the stack trace is largely unintelligible which makes debugging issues extremely difficult and irritating.

For example, I've got a crash and I can't make heads or tails of what happened other than it is related to SingleImplConfig and analyze_opcodes.

0   redex-all                           0x0000000107ee8831 _Z23crash_backtrace_handleri + 81
1   libsystem_platform.dylib            0x00007ff815c1adfd _sigtramp + 29
2   ???                                 0x0000000042000000 0x0 + 1107296256
3   redex-all                           0x0000000107d72fe7 _ZN5boost6detail11thread_dataINSt3__18__bind_rIvRZN6sparta15SpartaWorkQueueIP8DexClassN20redex_workqueue_impl22NoStateWorkQueueHelperIS7_ZN4walk8parallel4codeINS2_6vectorIS7_NS2_9allocatorIS7_EEEEFbP9DexMethodEZN12AnalysisImpl15analyze_opcodesERK16SingleImplConfigE4$_10EEvRKT_RKT0_RKT1_mEUlS7_E_EEE7run_allEvEUlPNS4_17SpartaWorkerStateIS7_EEmE_JS13_RmEEEE3runEv + 583
4   redex-all                           0x000000010846d242 _ZN5boost12_GLOBAL__N_112thread_proxyEPv + 130
5   libsystem_pthread.dylib             0x00007ff815c054e1 _pthread_start + 125
6   libsystem_pthread.dylib             0x00007ff815c00f6b thread_start + 15
Traceback (most recent call last):
  File "/tmp/redex.6A59yw/redex.py", line 1311, in <module>
    with_temp_cleanup(lambda: run_redex(args), args.always_clean_up)
  File "/private/tmp/redex.6A59yw/pyredex/utils.py", line 81, in with_temp_cleanup
    fn()
  File "/tmp/redex.6A59yw/redex.py", line 1311, in <lambda>
    with_temp_cleanup(lambda: run_redex(args), args.always_clean_up)
  File "/tmp/redex.6A59yw/redex.py", line 1290, in run_redex
    run_redex_binary(state, exception_formatter, output_line_handler)
  File "/tmp/redex.6A59yw/redex.py", line 377, in run_redex_binary
    run()
  File "/tmp/redex.6A59yw/redex.py", line 370, in run
    raise RuntimeError(msg)
RuntimeError: redex-all crashed with exit code -11! You can re-run it under gdb by running /tmp/redex.6A59yw/redex-gdb-63m42nks.sh or under lldb by running /tmp/redex.6A59yw/redex-lldb-a1gw9qq4.sh
@agampe
Copy link
Contributor

agampe commented Nov 8, 2022

We don't currently support nicely symbolized stacks on MacOS. If you were on Linux and with addr2line available it would give you a nicer abort message.

The code for that is here. If you want to contribute something similar for Mac's atos we'd be happy to take it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants