# How do I use catch\_backtrace()?

**URL:** <https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218>\
**Category:** General Usage\
**Created:** [December 30, 2016, 6:16pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218 "2016-12-30T18:16:50Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![bluesmoon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bluesmoon/32/327_2.png) [@bluesmoon](https://discourse.julialang.org/u/bluesmoon)\
**Post date:** [December 30, 2016, 6:16pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/1 "2016-12-30T18:16:50Z")

</div>

I’m in Julia 0.4.5, and trying to use `catch_backtrace()` in a `catch` block, but it just returns an array of `Ptr` objects and I’ve been unable to find any documentation detailing what to do with these `Ptr` objects.

So, how do I get the filename, line number and optionally, function name of each frame in the stack trace?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 30, 2016, 6:22pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/2 "2016-12-30T18:22:46Z")

</div>

```julia
bt = backtrace();

for ip in bt
    for fr in StackTraces.lookup(ip)
        println(fr)
        # Can look at fields like fr.file, fr.func, fr.from_c etc as well
    end
    println()
end

```

---

<div class="post-metadata">

**Author:** ![bluesmoon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bluesmoon/32/327_2.png) [@bluesmoon](https://discourse.julialang.org/u/bluesmoon)\
**Post date:** [December 30, 2016, 6:50pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/3 "2016-12-30T18:50:12Z")

</div>

Thanks. No way to do it without depending on an external module?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 30, 2016, 7:17pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/4 "2016-12-30T19:17:45Z")

</div>

External? `StackTraces` comes with julia Base. It started as a package though.

---

<div class="post-metadata">

**Author:** ![bluesmoon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bluesmoon/32/327_2.png) [@bluesmoon](https://discourse.julialang.org/u/bluesmoon)\
**Post date:** [December 30, 2016, 7:21pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/5 "2016-12-30T19:21:56Z")

</div>

I had to `Pkg.add` it, it wasn’t available with the base 0.4.5 installation.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 30, 2016, 7:26pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/6 "2016-12-30T19:26:38Z")

</div>

Yeah. It came in 0.5.

---

<div class="post-metadata">

**Author:** ![mzaffalon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mzaffalon/32/214168_2.png) [@mzaffalon](https://discourse.julialang.org/u/mzaffalon)\
**Post date:** [December 31, 2016, 2:20pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/7 "2016-12-31T14:20:39Z")

</div>

Unless you have a good reason to stay with 0.4.5, you should update to the bugfix only 0.4.7 version or upgrade to the stable release 0.5.0.

---

<div class="post-metadata">

**Author:** ![bluesmoon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bluesmoon/32/327_2.png) [@bluesmoon](https://discourse.julialang.org/u/bluesmoon)\
**Post date:** [December 31, 2016, 7:07pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/8 "2016-12-31T19:07:46Z")

</div>

0.4.7 is definitely possible. 0.5.0 is not at the moment. We’ve only recently managed to move most of our customers over from the 0.3 line to the 0.4 line and some of them have 8-12 month upgrade cycles.

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ihnorton/32/26_2.png) [@ihnorton](https://discourse.julialang.org/u/ihnorton)\
**Post date:** [January 4, 2017, 9:51pm UTC](https://discourse.julialang.org/t/how-do-i-use-catch-backtrace/1218/9 "2017-01-04T21:51:29Z")

</div>

If you absolutely cannot use the StackTraces module – which is much nicer – there is unexported functionality to get basic frame info in 0.4. See [this commit](https://github.com/JuliaLang/julia/commit/adce3569b31d29) and the `lookup` function and `LineInfo` data structure.
