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

[Bug]: panic when decompile #33

Closed
2 tasks done
lidarbtc opened this issue Dec 28, 2022 · 3 comments
Closed
2 tasks done

[Bug]: panic when decompile #33

lidarbtc opened this issue Dec 28, 2022 · 3 comments
Assignees

Comments

@lidarbtc
Copy link
Contributor

Component

Heimdall CLI

Version

0.2.1

Please check the following

  • This is not a duplicate issue
  • I have checked the wiki and tried troubleshooting the issue

Operating System

Linux

Describe the issue you are facing

I check #30 this issue and his contract is work well in 0.2.1 but my contract is not.

environment : klaytn mainnet (ether hardfork and other klaytn contract is work well)

Error contract : 0x4f5d9f3b17988aa047e6f1bc511fec0bf25691f4

command :

heimdall decompile 0x4f5d9f3b17988aa047e6f1bc511fec0bf25691f4 --include-sol -r https://public-node-api.klaytnapi.com/v1/cypress

error :

success: wrote disassembled bytecode to '/home/hj/output/0x4f5d9f3b17988aa047e6f1bc511fec0bf25691f4/disassembled.asm' .
info: ⠙ analyzing '0x4d49e87d'                                                  fatal: thread 'main' encountered a fatal error: 'panicked at 'called `Option::unwrap()` on a `None` value', src/decompile/analyze.rs:117:36'!
fatal: Stack Trace:

   0:     0x55a7754bf78f - backtrace::capture::Backtrace::new::hefe871ffee13979a
   1:     0x55a7755c1374 - heimdall::main::{{closure}}::h382a421ae6620b25
   2:     0x55a7758068b2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h44df53ea2a13204b
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/alloc/src/boxed.rs:2001:9
                           std::panicking::rust_panic_with_hook::hfd45b6b6c12d9fa5
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:692:13
   3:     0x55a775806523 - std::panicking::begin_panic_handler::{{closure}}::hf591e8609a75bd4b
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:577:13
   4:     0x55a7758064be - std::sys_common::backtrace::__rust_end_short_backtrace::h81899558795e4ff7
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:137:18
   5:     0x55a775806491 - rust_begin_unwind
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:575:5
   6:     0x55a77547f7d2 - core::panicking::panic_fmt::h4235fa9b4675b332
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/panicking.rs:65:14
   7:     0x55a77547f8cc - core::panicking::panic::h9ced3cf2f605ba6a
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/panicking.rs:115:5
   8:     0x55a7755cc563 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
   9:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  10:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  11:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  12:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  13:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  14:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  15:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  16:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  17:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  18:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  19:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  20:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  21:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  22:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  23:     0x55a7755cba57 - heimdall::decompile::analyze::<impl heimdall::decompile::util::VMTrace>::analyze::h183fd40b5ac1e62a
  24:     0x55a7755a79e0 - heimdall::decompile::decompile::hf40dc136b5a01837
  25:     0x55a7755bfe3e - heimdall::main::h874210b1c8a7d14f
  26:     0x55a7755d32e3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h8c3b0cd6d4a8ed1f
  27:     0x55a7755b4369 - std::rt::lang_start::{{closure}}::h6c25724aac55ad68
  28:     0x55a7757dff44 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h072eb4cd8da964ba
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/ops/function.rs:286:13
                           std::panicking::try::do_call::h8eca204fe9266946
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:483:40
                           std::panicking::try::h12574e1b7b2cbacb
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:447:19
                           std::panic::catch_unwind::hf71522d4448329d6
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panic.rs:137:14
                           std::rt::lang_start_internal::{{closure}}::h65b66ac9bff580f8
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/rt.rs:148:48
                           std::panicking::try::do_call::hfff61e33ca3db9f1
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:483:40
                           std::panicking::try::he48c8ecead279cad
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:447:19
                           std::panic::catch_unwind::hd510a26bfc950ccc
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panic.rs:137:14
                           std::rt::lang_start_internal::hc680b25eab888da9
                               at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/rt.rs:148:20
  29:     0x55a7755bce94 - main
  30:     0x7f08c5d24d90 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  31:     0x7f08c5d24e40 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:392:3
  32:     0x55a77549d765 - _start
  33:                0x0 - <unknown>
@Jon-Becker
Copy link
Owner

Jon-Becker commented Dec 28, 2022

Thanks for the bug! I'll fix this in 0.2.2 later today.

This appears to affect the LOG0 opcode

@Jon-Becker
Copy link
Owner

Jon-Becker commented Dec 28, 2022

Resolved in v0.2.2. Just a notice, the function

function initialize(address[] memory arg0, uint8[] memory arg1, string memory arg2, string memory arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, address arg8) public payable {

is being truncated to 1000 branches, likely due to recursion or an uncaught loop. This will be fixed in the next major update.

@Jon-Becker Jon-Becker self-assigned this Dec 28, 2022
@lidarbtc
Copy link
Contributor Author

thank you!!

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