Trace calls in gdb (#1 at the top executes last): #1 0x0000000000438f78 in execute_builtin (builtin=0x4867aa , words=0x880868, flags=0, subshell=0) at execute_cmd.c:4096 4096 result = ((*builtin) (words->next)); (gdb) #2 0x0000000000439b55 in execute_builtin_or_function (words=0x880868, builtin=0x4867aa , var=0x0, redirects=0x0, fds_to_close=0xa32068, flags=0) at execute_cmd.c:4521 4521 result = execute_builtin (builtin, words, flags, 0); (gdb) #3 0x0000000000438ab1 in execute_simple_command (simple_command=0xa31b08, pipe_in=-1, pipe_out=-1, async=0, fds_to_close=0xa32068) at execute_cmd.c:3931 3931 result = execute_builtin_or_function (gdb) #4 0x0000000000432e80 in execute_command_internal (command=0xa31b88, asynchronous=0, pipe_in=-1, pipe_out=-1, fds_to_close=0xa32068) at execute_cmd.c:735 735 exec_result = (gdb) #5 0x0000000000486392 in parse_and_execute ( string=0x762788 "#!/bin/bash\nexec \"non-existing-file\"\nls js\n", from_file=0xa00a08 "exec1.sh", flags=20) at evalstring.c:319 319 (command, 0, NO_PIPE, NO_PIPE, bitmap); (gdb) #6 0x0000000000485b4c in _evalfile (filename=0xa00a08 "exec1.sh", flags=14) at evalfile.c:264 264 result = parse_and_execute (string, filename, pflags); (gdb) #7 0x0000000000485dcf in source_file (filename=0xa00a08 "exec1.sh", sflags=0) at evalfile.c:344 344 rval = _evalfile (filename, flags); (gdb) #8 0x00000000004905df in source_builtin (list=0x74cb88) at ./source.def:192 192 result = source_file (filename, (list && list->next)); ...................