MCPcopy Create free account
hub / github.com/bdring/FluidNC / decode

Function decode

tools/stack_trace_decoder/server.py:76–126  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

74
75@app.route("/decode", methods=["POST", "OPTIONS"])
76def decode():
77 if request.method == "OPTIONS":
78 return ("", 204)
79
80 try:
81 stack_trace = ""
82 addresses = []
83 elf_url = ""
84
85 if request.is_json:
86 payload = request.get_json() or {}
87 stack_trace = payload.get("stack_trace", "")
88 addresses = payload.get("addresses", [])
89 elf_url = payload.get("elf_url", "")
90 else:
91 stack_trace = request.form.get("stack_trace", "")
92 addresses_text = request.form.get("addresses", "")
93 elf_url = request.form.get("elf_url", "")
94 if addresses_text:
95 addresses = ADDRESS_RE.findall(addresses_text)
96
97 if not addresses:
98 addresses = extract_addresses(stack_trace)
99
100 elf_file = request.files.get("elf")
101
102 with tempfile.TemporaryDirectory() as tmpdir:
103 tmpdir_path = Path(tmpdir)
104 elf_path = tmpdir_path / "firmware.elf"
105
106 if elf_file:
107 elf_path.write_bytes(elf_file.read())
108 elf_source = "upload"
109 elif elf_url:
110 download_elf(elf_url, elf_path)
111 elf_source = elf_url
112 else:
113 return jsonify({"error": "Missing ELF file or elf_url"}), 400
114
115 result = decode_addresses(elf_path, addresses)
116
117 return jsonify(
118 {
119 "addresses": addresses,
120 "decoded": result["decoded"],
121 "addr2line": result["addr2line"],
122 "elf_source": elf_source,
123 }
124 )
125 except Exception as exc:
126 return jsonify({"error": str(exc)}), 500
127
128
129if __name__ == "__main__":

Callers 1

decodeMethod · 0.85

Calls 5

extract_addressesFunction · 0.85
download_elfFunction · 0.85
decode_addressesFunction · 0.85
getMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected