On Wednesday, 1 July 2020 at 18:05:09 UTC, Jacob Carlborg wrote:
[1] https://dlang.org/phobos/core_runtime.html#.Runtime.traceHandler

Thanks, but I don't want to re-implement the default trace handler, I want to use it on a specific location and capture its output. I'll be more specific in what I want to achieve.

I have a function that checks a global error constant of a C library (OpenGL) like this:
```
void assertNoOpenGLErrors() {
    if (glGetError() != GL_NO_ERROR) {
        assert(0); // stack trace points to here instead of caller
    }
}
```

And I would like to rewrite it to this:
```
void assertNoOpenGLErrors() {
    if (glGetError() != GL_NO_ERROR) {
        print(getStackTrace().filterTrace());
        exit();
    }
}
```

So that the stack trace immediately points to the function that raised the OpenGL error, instead of it being buried in a large trace.

Reply via email to