[#absl-internal_stacktrace-FixUpStack]
= xref:absl.adoc[absl]::xref:absl/internal_stacktrace.adoc[internal&lowbar;stacktrace]::FixUpStack
:relfileprefix: ../../
:mrdocs:

Fixes up the stack trace of the current thread, in the first `depth` frames of each buffer&period; The buffers need to be larger than `depth`, to accommodate any newly inserted elements&period; `depth` is updated to reflect the new number of elements valid across all the buffers&period; (It is therefore recommended that all buffer sizes be equal&period;)

== Synopsis

Declared in `&lt;absl&sol;debugging&sol;stacktrace&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
extern
void
FixUpStack(
    void** pcs,
    uintptr&lowbar;t* frames,
    int* sizes,
    size&lowbar;t capacity,
    size&lowbar;t& depth);
----

== Description

The `frames` and `sizes` parameters denote the bounds of the stack frame corresponding to each instruction pointer in the `pcs`&period; Any elements inside these buffers may be zero or null, in which case that information is assumed to be absent&sol;unavailable&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *pcs*
| Buffer of program counter values to fix up&period;
| *frames*
| Buffer of stack frame bounds corresponding to each entry in `pcs`&period;
| *sizes*
| Buffer of stack frame sizes corresponding to each entry in `pcs`&period;
| *capacity*
| Capacity of the `pcs`, `frames`, and `sizes` buffers&period;
| *depth*
| Number of valid elements on input&semi; updated to the new number of valid elements&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
