---
title: "debug.getupvalues"
description: "Returns a 1-based table of upvalue values."
---

```lua
debug.getupvalues(target: function | number): {any}
```

---

## Aliases

- `getupvalues`

---

## Arguments

<ParamField body="target" type="function | number" required>
  The function to inspect, or a positive stack level identifying a caller.
</ParamField>

---

## Returns

<ResponseField name="upvalues" type="{any}">
  A 1-based table of captured values. Nil slots may leave holes.
</ResponseField>

target may be a Lua function or positive stack level. Nil entries create holes; use pairs.

**Related types:** [Debug types & behavior](/reference/debug/types).

---

## Example

```lua
local captured = {value = 1}
local function sample() return captured.value end
for index, value in pairs(debug.getupvalues(sample)) do print(index, value) end
```
