Blame winpr/libwinpr/utils/test/TestBacktrace.c

Packit Service fa4841
#include <stdio.h>
Packit Service fa4841
#include <winpr/debug.h>
Packit Service fa4841
Packit Service fa4841
int TestBacktrace(int argc, char* argv[])
Packit Service fa4841
{
Packit Service fa4841
	int rc = -1;
Packit Service fa4841
	size_t used, x;
Packit Service fa4841
	char** msg;
Packit Service fa4841
	void* stack = winpr_backtrace(20);
Packit Service fa4841
Packit Service fa4841
	if (!stack)
Packit Service fa4841
	{
Packit Service fa4841
		fprintf(stderr, "winpr_backtrace failed!\n");
Packit Service fa4841
		return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	msg = winpr_backtrace_symbols(stack, &used);
Packit Service fa4841
Packit Service fa4841
	if (msg)
Packit Service fa4841
	{
Packit Service fa4841
		for (x = 0; x < used; x++)
Packit Service fa4841
			printf("%" PRIuz ": %s\n", x, msg[x]);
Packit Service fa4841
Packit Service fa4841
		rc = 0;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	winpr_backtrace_symbols_fd(stack, fileno(stdout));
Packit Service fa4841
	winpr_backtrace_free(stack);
Packit Service fa4841
	free(msg);
Packit Service fa4841
	return rc;
Packit Service fa4841
}