online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#define _GNU_SOURCE #include<pthread.h> #include<stdio.h> #include<string.h> #include<stdlib.h> #include <unistd.h> #include<errno.h> void display_thread_attr(pthread_attr_t *attr) { int ret, a; size_t s; void *saddr; ret = pthread_attr_getguardsize(attr, &s); if (ret != 0) { printf("pthread_attr_getguardsize error \n"); return; } printf("Guard size = %zu bytes\n", s); ret = pthread_attr_getstack(attr, &saddr, &s); if (ret != 0 ){ printf("pthread_attr_getstack error \n"); return; } printf("Stack address = %p\n", saddr); printf("Stack size = %#zx bytes\n", s); } static void *threadfun(void *arg) { pthread_attr_t gattr; int ret; char *s=(char *)arg; ret = pthread_getattr_np(pthread_self(), &gattr); if (ret != 0) { printf("pthread_getattr_np error \n"); return (void *)-1; } display_thread_attr(&gattr); } int main() { pthread_t th; pthread_attr_t attr; int ret; size_t st_size = 16900; void *sp; int align = getpagesize(); ret = posix_memalign(&sp, align, st_size); if (ret != 0) { printf("posix_memalign error\n"); return -1; } ret = pthread_attr_init(&attr); if (ret != 0) { printf("Pthread attribute init error\n"); return -1; } ret = pthread_attr_setstack(&attr, sp, st_size); if (ret != 0) { printf("Pthread attr set stack error\n"); return -1; } ret = pthread_create(&th,&attr,&threadfun,NULL); if (ret != 0) { printf("pthread create error\n"); return -1; } ret = pthread_attr_destroy(&attr); if (ret != 0) { printf("pthread attr destroy error\n"); return -1; } ret = pthread_join(th, NULL); if (ret != 0) { printf("pthread_join error \n"); return -1; } return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue