zsh-users
 help / color / mirror / Atom feed
* debug functions
@ 2021-02-10 22:07 Pier Paolo Grassi
  2021-02-10 22:56 ` Bart Schaefer
  0 siblings, 1 reply; 5+ messages in thread
From: Pier Paolo Grassi @ 2021-02-10 22:07 UTC (permalink / raw)
  To: Zsh-Users List

[-- Attachment #1: Type: text/plain, Size: 493 bytes --]

Hello, I would like to activate the same behaviour of functions -T
function_name, but for the current scope, ie the function already been
called.
something like:

function_name (){
  functions -T $0
  ...
}
fname

this doesn't work, I think because the tracing starts when the function is
called.
I know I can do setopt xtrace, but this debugs also the functions called
from now on, functions -T does not.
Is there a way to activate debug for the current scope only?
thanks

Pier Paolo Grassi

[-- Attachment #2: Type: text/html, Size: 864 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: debug functions
  2021-02-10 22:07 debug functions Pier Paolo Grassi
@ 2021-02-10 22:56 ` Bart Schaefer
  2021-02-10 23:04   ` Pier Paolo Grassi
  0 siblings, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2021-02-10 22:56 UTC (permalink / raw)
  To: Pier Paolo Grassi; +Cc: Zsh-Users List

On Wed, Feb 10, 2021 at 2:08 PM Pier Paolo Grassi <pierpaolog@gmail.com> wrote:
>
> function_name (){
>   functions -T $0
>   ...
> }

I think it'd be a bit convoluted ...

function_name () {
  if [[ -o xtrace ]]
  then
    # The real function body here
  else
    functions -T function_name
    {
      function_name "$@"
    } always {
      functions +T function_name
    }
  fi
}


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: debug functions
  2021-02-10 22:56 ` Bart Schaefer
@ 2021-02-10 23:04   ` Pier Paolo Grassi
  2021-02-12  3:21     ` Bart Schaefer
  0 siblings, 1 reply; 5+ messages in thread
From: Pier Paolo Grassi @ 2021-02-10 23:04 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: Zsh-Users List

[-- Attachment #1: Type: text/plain, Size: 654 bytes --]

I was afraid the function that call itself is the only way to go here,
thanks for confirming
best regards

Pier Paolo Grassi


Il giorno mer 10 feb 2021 alle ore 23:56 Bart Schaefer <
schaefer@brasslantern.com> ha scritto:

> On Wed, Feb 10, 2021 at 2:08 PM Pier Paolo Grassi <pierpaolog@gmail.com>
> wrote:
> >
> > function_name (){
> >   functions -T $0
> >   ...
> > }
>
> I think it'd be a bit convoluted ...
>
> function_name () {
>   if [[ -o xtrace ]]
>   then
>     # The real function body here
>   else
>     functions -T function_name
>     {
>       function_name "$@"
>     } always {
>       functions +T function_name
>     }
>   fi
> }
>

[-- Attachment #2: Type: text/html, Size: 1356 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: debug functions
  2021-02-10 23:04   ` Pier Paolo Grassi
@ 2021-02-12  3:21     ` Bart Schaefer
  2021-02-12  9:30       ` Pier Paolo Grassi
  0 siblings, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2021-02-12  3:21 UTC (permalink / raw)
  To: Pier Paolo Grassi; +Cc: Zsh-Users List

On Wed, Feb 10, 2021 at 3:04 PM Pier Paolo Grassi <pierpaolog@gmail.com> wrote:
>
> I was afraid the function that call itself is the only way to go here, thanks for confirming

Actually, if you have the current development version of the shell you
can do this:

function_name () {
  function -T {
    # original function body here
  } "$@"
}

The trace will show '(anon)' instead of 'function_name', but otherwise
it's what you want.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: debug functions
  2021-02-12  3:21     ` Bart Schaefer
@ 2021-02-12  9:30       ` Pier Paolo Grassi
  0 siblings, 0 replies; 5+ messages in thread
From: Pier Paolo Grassi @ 2021-02-12  9:30 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: Zsh-Users List

[-- Attachment #1: Type: text/plain, Size: 613 bytes --]

Thanks, I'll check it out.

Pier Paolo Grassi


Il giorno ven 12 feb 2021 alle ore 04:21 Bart Schaefer <
schaefer@brasslantern.com> ha scritto:

> On Wed, Feb 10, 2021 at 3:04 PM Pier Paolo Grassi <pierpaolog@gmail.com>
> wrote:
> >
> > I was afraid the function that call itself is the only way to go here,
> thanks for confirming
>
> Actually, if you have the current development version of the shell you
> can do this:
>
> function_name () {
>   function -T {
>     # original function body here
>   } "$@"
> }
>
> The trace will show '(anon)' instead of 'function_name', but otherwise
> it's what you want.
>

[-- Attachment #2: Type: text/html, Size: 1252 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-02-12  9:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-10 22:07 debug functions Pier Paolo Grassi
2021-02-10 22:56 ` Bart Schaefer
2021-02-10 23:04   ` Pier Paolo Grassi
2021-02-12  3:21     ` Bart Schaefer
2021-02-12  9:30       ` Pier Paolo Grassi

zsh-users

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.vuxu.org/zsh-users

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 zsh-users zsh-users/ http://inbox.vuxu.org/zsh-users \
		zsh-users@zsh.org
	public-inbox-index zsh-users

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.users


code repositories for the project(s) associated with this inbox:

	https://git.vuxu.org/mirror/zsh/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git