Re: Time to Upgrade Qt5

2020-03-13 Thread Christian Barthel
Amit Yaron  writes:

> Unfortunately, tools such as VLC and VirtualBox don't tell us when
> it's time to upgrade Qt5.

I came across the same problem with the "nextcloudclient".
Luckily enough, the "nextcloudcmd" command works without Qt5.

-- 
Christian Barthel 
___
freebsd-chat@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-chat
To unsubscribe, send any mail to "freebsd-chat-unsubscr...@freebsd.org"


Re: siginfo_t content

2019-02-15 Thread Christian Barthel
John Baldwin  writes:

> On 2/15/19 8:43 AM, Christian Barthel wrote:
>> John Baldwin  writes:
>> 
>>> See the siginfo(3) manpage.  SI_TIMER is described there as:
>>>
>>> SI_TIMER signal generated by expiration of a
>>>  timer set by timer_settime(2)
>>>
>>> It is not for setitimer.  Similarly, si_addr is usually only specified for
>>> synchronous signals and usually holds the PC of the faulting instruction
>>> except for SIGSEGV when it holds the faulting virtual address.
>> 
>> Thanks for your reply. 
>> Ah, yes, siginfo(3) has more details on siginfo_t (missed that
>> one; sorry).  This clarifies my question.
>> I've looked up the POSIX standard but I haven't seen a reason why
>> si_addr is only set for SIGSEGV and "only" a few others - are
>> there reasons for this?
>
> I think it's only intended for use with synchronous traps where the signal
> is the result of executing an instruction (so si_addr is usually the PC of
> the instruction triggering the signal).  Async events like timers aren't
> triggered by instructions, so there's no meaningful si_addr to use.
>
> However, in a signal handler you can look at the architecture-specific
> ucontext_t * (3rd argument to handler when using SA_SIGINFO) to determine
> the PC of the thread at the time it was interrupted by the signal.
>
> What are you trying to do exactly?

I've read about profilers at [0] and thought about how to
implementing one myself.  My initial idea was to setitimer() and
keep track of the PC with SIGPROF and calculate "hot regions".

Then, I started wondering myself why/how the SIGPROF is meant to
be used, since the current program counter was the first thing
that came to my mind when thinking about profiling.  But I guess,
I have to keep track of the current function (or even the stack
trace myself and use it within the signal handler to determine
hot paths and regions). 
 
I know about gprof and DTrace but I am more interested in how to
do it on my own and see, how far I can go.

[0] https://research.swtch.com/pprof
-- 
Christian Barthel 
___
freebsd-chat@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-chat
To unsubscribe, send any mail to "freebsd-chat-unsubscr...@freebsd.org"


Re: siginfo_t content

2019-02-15 Thread Christian Barthel
John Baldwin  writes:

> See the siginfo(3) manpage.  SI_TIMER is described there as:
>
> SI_TIMER signal generated by expiration of a
>  timer set by timer_settime(2)
>
> It is not for setitimer.  Similarly, si_addr is usually only specified for
> synchronous signals and usually holds the PC of the faulting instruction
> except for SIGSEGV when it holds the faulting virtual address.

Thanks for your reply. 
Ah, yes, siginfo(3) has more details on siginfo_t (missed that
one; sorry).  This clarifies my question.
I've looked up the POSIX standard but I haven't seen a reason why
si_addr is only set for SIGSEGV and "only" a few others - are
there reasons for this?

-- 
Christian Barthel 
___
freebsd-chat@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-chat
To unsubscribe, send any mail to "freebsd-chat-unsubscr...@freebsd.org"


siginfo_t content

2019-02-14 Thread Christian Barthel
Hello, 
I am interested in the historical development of the siginfo_t
record.  I hope, this is the correct mailinglist and there are
still readers on it. 

I've tried to write a very simple and minimalistic profiler for a
single threaded application by using setitimer(2) and SIGPROF
signal.  When using the extended signal handler code described in
the EXAMPLES section of sigaction(2), I can access the faulting
code and the type of the signal by using `struct siginfo`:

   File: 
   struct siginfo_t *info {

int si_code; /* signal code */
void *si_addr;   /* faulting instruction */

   }

I've noticed that the si_code is always set to be SI_KERNEL and
the si_addr to be 0x0.  Is there a specific reason for this?

I thought that the SIGPROF signal would be of type SI_TIMER.
After reading through the kernel sources, I've manipulated the
returned structure a bit and attached the patch to clarify what I
am meaning (I've just used the program counter of the first
thread which is not correct if there are multiple threads).

Kind regards,
-- 
Christian Barthel 
___
freebsd-chat@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-chat
To unsubscribe, send any mail to "freebsd-chat-unsubscr...@freebsd.org"