---
title: "Debug"
description: "Constants, upvalues, prototypes, and stack inspection."
icon: "bug"
---

## Available functions

<div className="byte-function-directory">
<CardGroup cols={2}>
  <Card title="debug.getcallstack" href="/reference/debug/debug-getcallstack">
    Returns metadata for call frames of the current or supplied thread.
  </Card>
  <Card title="debug.getconstant" href="/reference/debug/debug-getconstant">
    Returns a constant slot from a Lua prototype.
  </Card>
  <Card title="debug.getconstants" href="/reference/debug/debug-getconstants">
    Returns a Lua prototype's constants by 1-based slot.
  </Card>
  <Card title="debug.getinfo" href="/reference/debug/debug-getinfo">
    Returns function/frame metadata and the function itself.
  </Card>
  <Card title="debug.getmetatable" href="/reference/debug/debug-getmetatable">
    Returns a raw metatable bypassing protection.
  </Card>
  <Card title="debug.getproto" href="/reference/debug/debug-getproto">
    Returns a cloned nested prototype closure, or live matching closures when active is true.
  </Card>
  <Card title="debug.getprotos" href="/reference/debug/debug-getprotos">
    Lists nested prototypes in a Lua function.
  </Card>
  <Card title="debug.getregistry" href="/reference/debug/debug-getregistry">
    Returns the live VM registry.
  </Card>
  <Card title="debug.getstack" href="/reference/debug/debug-getstack">
    Reads a visible Lua frame's register slot or all slots.
  </Card>
  <Card title="debug.getupvalue" href="/reference/debug/debug-getupvalue">
    Returns one captured upvalue by 1-based index.
  </Card>
  <Card title="debug.getupvalues" href="/reference/debug/debug-getupvalues">
    Returns a 1-based table of upvalue values.
  </Card>
  <Card title="debug.setconstant" href="/reference/debug/debug-setconstant">
    Changes a constant while preserving its native type.
  </Card>
  <Card title="debug.setinfo" href="/reference/debug/debug-setinfo">
    Updates selected function/frame metadata.
  </Card>
  <Card title="debug.setmetatable" href="/reference/debug/debug-setmetatable">
    Sets/removes the raw metatable.
  </Card>
  <Card title="debug.setstack" href="/reference/debug/debug-setstack">
    Writes a register slot in a visible Lua frame.
  </Card>
  <Card title="debug.setstackhidden" href="/reference/debug/debug-setstackhidden">
    Adds/removes a closure from Byte's traceback-hidden set.
  </Card>
  <Card title="debug.setupvalue" href="/reference/debug/debug-setupvalue">
    Replaces one upvalue in a Lua closure.
  </Card>
  <Card title="debug.validlevel" href="/reference/debug/debug-validlevel">
    Checks whether a numeric level is within the thread's native frame count.
  </Card>
  <Card title="traceback" href="/reference/debug/traceback">
    Builds a Byte-formatted traceback of the current thread.
  </Card>
</CardGroup>
</div>

[View types and behavior](/reference/debug/types)
