On 3/1/19 11:11 PM, L A Walsh wrote: > Furthermore, it appears the line numbers may be based on the "reconstituted > source" rather than the original source. Either way -- this is why I want > to be able to turn on storing of the definition from the beginning of the > login session.
If you mean the function text, I don't think it's of general interest, and the debugger seems to manage to get along without it. You can get the file and line number where the function is defined when extdebug is on, even if you turn it on after the session has begun, and go from there. > > If I add shopt -s extdebug at the beginning of /etc/profile, the correct > filename and line number are stored and displayed with '-F'. The filename and line number are always stored. > > As for storing the original source -- for the reasons above. As a > safety to allow the debugger to operate under adverse conditions. It's not of general enough interest to be worth the implementation cost. You could try modifying the parser and the input code to do it, if you were so inclined. > But 1st, you need to realize that the BASH variables are just as "lost" > as bashdb. If source-file and line numbers of definitions are turned on > from the beginning of a login session, then no matter what function is > called, it will be known to bash -- and, thus, bashdb -- which can at least > try to read in the original source. The filename and line number are always stored. You can turn on extdebug any time you want to see them. bash-5.0$ declare -F xtitle xtitle bash-5.0$ shopt -s extdebug bash-5.0$ declare -F xtitle xtitle 59 /Users/chet/.bashrc bash-5.0$ It's the same in bash-4.4. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/