Skip to content

Trimmed CFG output #53

@zerjioang

Description

@zerjioang

I ran this command:

docker run --rm -v $(pwd)/.env:/app/.env -v $(pwd)/execution/docker:/app/execution/results docker.io/library/evm-lisa:latest --bytecode 0x366028576000600060006000303173f43febf30d4a00fa9b23e49e36e7acb5ca8591616103e8f1005b6388c2a0bf60e060020a026000526000358043116077574390036001016003023562ffffff16600452600060006024600060007306012c8cf97bead5deae237070f9587f8e7a266d6103e85a03f15b00 --stack-size 1024 --stack-set-size 1024 --checker-all

and the CFG.dot file is rendered as shown below with ... instead of the instructions

Image

The dot file is:

digraph CFG {
	rankdir=TB;
	0 [label="Entry point 0\n- - - - - - - - - - - -\n0: CALLDATASIZE\l1: PUSH1 0x28\l3: JUMPI\l", shape=box, style=filled, fillcolor="#D3D3D3"];
	4 [label="4: PUSH1 0x00\l6: PUSH1 0x00\l...
38: CALL\l39: STOP\l", shape=box, style=filled, fillcolor="#A6EC99"];
	40 [label="40: JUMPDEST\l41: PUSH4 0x88c2a0bf\l...
61: PUSH1 0x77\l63: JUMPI\l", shape=box, style=filled, fillcolor="#D3D3D3"];
	64 [label="64: NUMBER\l65: SWAP1\l...
117: SUB\l118: CALL\l", shape=box, style=filled, fillcolor="#D3D3D3"];
	119 [label="119: JUMPDEST\l120: STOP\l", shape=box, style=filled, fillcolor="#A6EC99"];
	0 -> 4 [color="#B70000"];
	0 -> 40 [color="#5F9747"];
	40 -> 64 [color="#B70000"];
	40 -> 119 [color="#5F9747"];
	64 -> 119 [color="#000000"];
	subgraph cluster_legend {
		label="Legend";
		style=dotted;
		node [shape=plaintext];
		"legend" [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
			<tr><td align="right">black edge&nbsp;</td><td align="left"><font color="#000000">sequential edge</font></td></tr>
			<tr><td align="right">green edge&nbsp;</td><td align="left"><font color="#5F9747">true edge</font></td></tr>
			<tr><td align="right">red edge&nbsp;</td><td align="left"><font color="#B70000">false edge</font></td></tr>
			<tr><td align="right">orange edge&nbsp;</td><td align="left"><font color="#FF9248">sequential multiple edge</font></td></tr>
			<tr><td align="right">green background&nbsp;</td><td align="left"><font color="#A6EC99">correct termination</font></td></tr>
			<tr><td align="right">red background&nbsp;</td><td align="left"><font color="#EF8683">error termination</font></td></tr>
			<tr><td align="right">orange background&nbsp;</td><td align="left"><font color="#FFB38A">jump to multiple blocks</font></td></tr>
			<tr><td align="right">blue background&nbsp;</td><td align="left"><font color="#6FA8DC">function entrypoint</font></td></tr>
			<tr><td align="right">purple background&nbsp;</td><td align="left"><font color="#A97FB2">event entrypoint</font></td></tr>
		</table>>];
	}
}

shows ... instead full block instructions. How can I render the DOT CFG will all instructions?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions