Linux Debugging

  Home  Operating System Linux  Linux Debugging


“Linux Debugging frequently Asked Questions by expert members with experience in Debugging. These questions and answers will help you strengthen your technical skills, prepare for the new job test and quickly revise the concepts”



80 Linux Debugging Questions And Answers

1⟩ What is the output of this program? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { int ret; ret = pthread_exit("Bye"); printf("%dn",ret); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) 0 b) 1 c) -1 d) none of the mentioned

d) none of the mentioned

Explanation:

The function pthread_exit() does not return any value. Hence this program will give an error.

Output:

[root@localhost Google]# gcc -o san san.c -lpthread

san.c: In function 'fun_t':

san.c:8:6: error: void value not ignored as it ought to be

[root@localhost google]#

 184 views

2⟩ What is the output of this program no 1? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { printf("googlen"); pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); return 0; } a) this program will print the string "google" b) this program will print nothing c) segmentation fault d) run time error

b) this program will print nothing

Explanation:The pthread_join() function waits for the thread to terminate.

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

[root@localhost google]#

 150 views

3⟩ What is the output of this program no 2? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { printf("%dn",a); pthread_exit("Bye"); } int main() { int a; pthread_t pt; void *res_t; a = 10; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) 10 b) 0 c) -1 d) none of the mentioned

d) none of the mentioned

Explanation:

Each thread has its own stack so local variables are not shared among thread. Hence this program will give an error.

Output:

[root@localhost google]# gcc -o san san.c -lpthread

san.c: In function 'fun_t':

san.c:7:16: error: 'a' undeclared (first use in this function)

san.c:7:16: note: each undeclared identifier is reported only once for each function it appears in

[root@localhost google]#

 149 views

4⟩ What is the output of this program no 3? #include<stdio.h> #include<pthread.h> int a; void *fun_t(void *arg); void *fun_t(void *arg) { printf("%dn",a); pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; a = 10; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) 10 b) 0 c) -1 d) none of the mentioned

a) 10

Explanation:

Thread of the same process shares the global variables.

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

10

[root@localhost google]#

 139 views

5⟩ What is the output of this program no 4? #include<stdio.h> #include<pthread.h> int a; void *fun_t(void *arg); void *fun_t(void *arg) { a = 20; pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; a = 10; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); printf("%dn",a); return 0; } a) 10 b) 20 c) segmentation fault d) none of the mentioned

b) 20

Explanation:

In this program the value of variable "a" is changed by the thread "fun_t".

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

20

[root@localhost google]#

 145 views

6⟩ Which one of the following statement is not true about this program? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { printf("%dn",getpid()); pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); printf("%dn",getpid()); return 0; } a) both printf statements will print the same value b) both printf statements will print the different values c) this program will print nothing d) none of the mentioned

a) both printf statements will print the same value

Explanation:

All the threads of the same process have same PID.

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

12981

12981

[root@localhost google]#

 177 views

7⟩ What is the output of this program no 6? #include<stdio.h> #include<pthread.h> #include<fcntl.h> int fd; void *fun_t(void *arg); void *fun_t(void *arg) { char buff[10]; int count; count = read(fd,buff,10); printf("%dn",count); pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; fd = open("san.c",O_RDONLY); if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) 10 b) 0 c) -1 d) segmentation fault

a) 10

Explanation:

Open file descritpors can be shares between threads of the same process

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

10

[root@localhost google]#

 185 views

8⟩ What is the output of this program no 7? #include<stdio.h> #include<pthread.h> #include<fcntl.h> void *fun_t(void *arg); void *fun_t(void *arg) { pthread_exit("Bye"); printf("googlen"); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); printf("%sn",res_t); return 0; } a) google b) Bye c) segementation fault d) run time error

b) Bye

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

Bye

[root@localhost google]#

 137 views

9⟩ What is the output of this program no 8? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { sleep(1); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); printf("%sn",res_t); return 0; } a) this process will pause b) segmentation fault c) run time error d) none of the mentioned

b) segmentation fault

Explanation:

This program is trying to print the return value of the thread, but pthread_exit() function is not present in the thread.

Output:

[root@localhost google]# gcc -o san san.c -lpthread

[root@localhost google]# ./san

Segmentation fault (core dumped)

[root@localhost google]#

 178 views

13⟩ Which one of the following string will print first by this program? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { printf("Googlen"); pthread_exit("Bye"); } int main() { pthread_t pt; void *res_t; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); printf("Linuxn"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) Linux b) Google c) it can not be predicted d) none of the mentioned

b) Google

Explanation:It depends upon the scheduler.

Output:

[root@localhost Google]# gcc -o san san.c -lpthread

[root@localhost Google]# ./san

Google

Linux

[root@localhost threads]#

 169 views