mirror of https://github.com/tinygo-org/tinygo.git
Browse Source
This shows nicely formatted error messages for missing symbol names and for out-of-flash, out-of-RAM conditions (on microcontrollers with limited flash/RAM). Unfortunately the missing symbol name errors aren't available on Windows and WebAssembly because the linker doesn't report source locations yet. This is something that I could perhaps improve in LLD.pull/4297/merge
Ayke van Laethem
4 months ago
committed by
Ron Evans
9 changed files with 220 additions and 44 deletions
@ -0,0 +1,21 @@ |
|||
package main |
|||
|
|||
import "unsafe" |
|||
|
|||
const ( |
|||
a = "0123456789abcdef" // 16 bytes
|
|||
b = a + a + a + a + a + a + a + a // 128 bytes
|
|||
c = b + b + b + b + b + b + b + b // 1024 bytes
|
|||
d = c + c + c + c + c + c + c + c // 8192 bytes
|
|||
e = d + d + d + d + d + d + d + d // 65536 bytes
|
|||
f = e + e + e + e + e + e + e + e // 524288 bytes
|
|||
) |
|||
|
|||
var s = f |
|||
|
|||
func main() { |
|||
println(unsafe.StringData(s)) |
|||
} |
|||
|
|||
// ERROR: program too large for this chip (flash overflowed by {{[0-9]+}} bytes)
|
|||
// ERROR: optimization guide: https://tinygo.org/docs/guides/optimizing-binaries/
|
@ -0,0 +1,9 @@ |
|||
package main |
|||
|
|||
var b [64 << 10]byte // 64kB
|
|||
|
|||
func main() { |
|||
println("ptr:", &b[0]) |
|||
} |
|||
|
|||
// ERROR: program uses too much static RAM on this chip (RAM overflowed by {{[0-9]+}} bytes)
|
@ -0,0 +1,11 @@ |
|||
package main |
|||
|
|||
func foo() |
|||
|
|||
func main() { |
|||
foo() |
|||
foo() |
|||
} |
|||
|
|||
// ERROR: linker-undefined.go:6: linker could not find symbol {{_?}}main.foo
|
|||
// ERROR: linker-undefined.go:7: linker could not find symbol {{_?}}main.foo
|
Loading…
Reference in new issue