www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Tracing D Applications

reply Mike Parker <aldacron gmail.com> writes:
This post by Alexandr Druzhinin shows three different approaches 
to tracing, using writef and external tools.

Blog:
https://dlang.org/blog/2020/03/13/tracing-d-applications/

Reddit:
https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
Mar 13
next sibling parent reply kinke <noone nowhere.com> writes:
On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different 
 approaches to tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
Thanks! Another option is to leverage LLVM niceties via LDC's XRay support (https://github.com/ldc-developers/ldc/pull/2465, https://llvm.org/docs/XRay.html).
Mar 13
next sibling parent reply Johan <j j.nl> writes:
On Friday, 13 March 2020 at 21:41:44 UTC, kinke wrote:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different 
 approaches to tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
Thanks! Another option is to leverage LLVM niceties via LDC's XRay support (https://github.com/ldc-developers/ldc/pull/2465, https://llvm.org/docs/XRay.html).
Although I added XRay support in LDC, I've never actually used it because it was not available on macOS at the time. Would be very interested in hearing people's experiences. Another option is `-finstrument-functions` (LDC, and probably GDC too): see e.g. http://hacktalks.blogspot.com/2013/08/gcc-instrument-functions.html and https://youtu.be/LNav5qvyK7I -Johan
Mar 14
parent reply drug <drug2004 bk.ru> writes:
On 3/14/20 9:38 PM, Johan wrote:
 On Friday, 13 March 2020 at 21:41:44 UTC, kinke wrote:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
Thanks! Another option is to leverage LLVM niceties via LDC's XRay support (https://github.com/ldc-developers/ldc/pull/2465, https://llvm.org/docs/XRay.html).
Although I added XRay support in LDC, I've never actually used it because it was not available on macOS at the time. Would be very interested in hearing people's experiences. Another option is `-finstrument-functions` (LDC, and probably GDC too): see e.g. http://hacktalks.blogspot.com/2013/08/gcc-instrument-functions.html and https://youtu.be/LNav5qvyK7I -Johan
Is XRay available on macOS now? As I understand it is linux specific too.
Mar 18
parent kinke <noone nowhere.com> writes:
On Wednesday, 18 March 2020 at 12:27:11 UTC, drug wrote:
 Is XRay available on macOS now? As I understand it is linux 
 specific too.
Some LLVM docs are notoriously outdated. Latest official LDC Mac packages ship with the XRay libs; Windows appears still unsupported though.
Mar 18
prev sibling parent drug <drug2004 bk.ru> writes:
14.03.2020 00:41, kinke пишет:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
Thanks! Another option is to leverage LLVM niceties via LDC's XRay support (https://github.com/ldc-developers/ldc/pull/2465, https://llvm.org/docs/XRay.html).
https://github.com/drug007/tracing_post/issues/1
Mar 15
prev sibling next sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different 
 approaches to tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
doesn't load here :/
Mar 14
parent reply drug <drug2004 bk.ru> writes:
15.03.2020 03:19, WebFreak001 пишет:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
doesn't load here :/
What do you mean?
Mar 15
parent reply WebFreak001 <d.forum webfreak.org> writes:
On Sunday, 15 March 2020 at 09:47:52 UTC, drug wrote:
 15.03.2020 03:19, WebFreak001 пишет:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different 
 approaches to tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
doesn't load here :/
What do you mean?
blog page loads forever and then times out just like in https://forum.dlang.org/thread/vyzzptpssxqbfveebxrp forum.dlang.org
Mar 16
parent drug <drug2004 bk.ru> writes:
On 3/16/20 9:04 PM, WebFreak001 wrote:
 On Sunday, 15 March 2020 at 09:47:52 UTC, drug wrote:
 15.03.2020 03:19, WebFreak001 пишет:
 On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
doesn't load here :/
What do you mean?
blog page loads forever and then times out just like in https://forum.dlang.org/thread/vyzzptpssxqbfveebxrp forum.dlang.org
I see. There is a preliminary (almost final) version https://github.com/drug007/tracing_post
Mar 17
prev sibling next sibling parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
On 3/13/20 3:00 PM, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.
 
 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/
 
 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
 
Just got around to reading this. What an awesome article! I had no idea of these options. I always reach for good-old printf. Would it make sense to put some mixins into Phobos/druntime for use in tracing, at least for the debug version of the library? Or have a parallel traceable version of the library? -Steve
Mar 17
parent drug <drug2004 bk.ru> writes:
On 3/17/20 7:12 PM, Steven Schveighoffer wrote:
 On 3/13/20 3:00 PM, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.

 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/

 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
Just got around to reading this. What an awesome article! I had no idea of these options. I always reach for good-old printf. Would it make sense to put some mixins into Phobos/druntime for use in tracing, at least for the debug version of the library? Or have a parallel traceable version of the library? -Steve
Thank you! These mixins are trivial in fact and can be easily added/removed to DRuntime. But they are platform/OS specific (x86_64/Linux) so imo better would be to add tracing capabilities for other platforms, summarize it all and then develop some _crossplatform_ tracing framework for D.
Mar 18
prev sibling next sibling parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
On 3/13/20 3:00 PM, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different approaches to 
 tracing, using writef and external tools.
 
 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/
 
 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ 
 
typo: sorta of => sort of -Steve
Mar 17
parent Mike Parker <aldacron gmail.com> writes:
On Tuesday, 17 March 2020 at 16:13:24 UTC, Steven Schveighoffer 
wrote:
 On 3/13/20 3:00 PM, Mike Parker wrote:
 This post by Alexandr Druzhinin shows three different 
 approaches to tracing, using writef and external tools.
 
 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/
 
 Reddit:
 https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/
 
typo: sorta of => sort of -Steve
Thanks!
Mar 17
prev sibling parent reply Kagamin <spam here.lot> writes:
On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote:
 Blog:
 https://dlang.org/blog/2020/03/13/tracing-d-applications/
The term "production" there seemingly means "the developer that wrote the program is also an administrator of all production systems" :)
Mar 19
parent drug <drug2004 bk.ru> writes:
On 3/19/20 10:56 PM, Kagamin wrote:
 The term "production" there seemingly means "the developer that wrote 
 the program is also an administrator of all production systems" :)
Production systems have maintenance mode one way or another. Case where you try to get access to production systems whose administrator doesn't want to give you that access is an other topic. ;)
Mar 20