Skip to content

Error stack/tracebacks? #58

@tisba

Description

@tisba

Hi there!

little disclaimer first: I'm not terribly familiar with go. I'm trying to take a look around how to use lua with go. I've opened a similar issue with Shopify/go-lua#87 because I had the same problem with (missing) tracebacks.

I'm struggling a bit on how to get proper tracebacks for errors.

Giving this hello.lua file containing:

print("Hello World")

function foo()
  print("Hello, I'm foo!")
  bar()
end

foo()

…run with lua hello.lua gives me:

Hello World
Hello, I'm foo!
lua: hello.lua:5: attempt to call global 'bar' (a nil value)
stack traceback:
	hello.lua:5: in function 'foo'
	hello.lua:8: in main chunk
	[C]: in ?

With golua used in file.go:

package main

import "../lua"
import "fmt"

func main() {
	L := lua.NewState()
	defer L.Close()
	L.OpenLibs()

	err := L.DoFile("hello.lua")

	fmt.Printf("%v\n", err)
}

…run with go run file.go gives me:

Hello World
Hello, I'm foo!
hello.lua:5: attempt to call global 'bar' (a nil value)

How can I get a comparable traceback with golua? Something that can be presented to a user. Are there more examples somewhere?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions