DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Who called my request?

Hi,

 

Is there a way to know who called a given request? We found that knowing that could help a lot debugging certain bugs, but at this point the only way I could program it is to add a "call-chain" string argument to the request which is passed to the DQMH module where I could log this to a file (or whatever). This doesnt look too much of an elegant solution as for each requests I'd like to track I need to add an extra - otherwise useless - input.

 

Is there a more sophisticated way?

 

Thanks.

0 Kudos
Message 1 of 15
(1,433 Views)

Hi, I would suggest to use Panther Dashboard for DQMH, if you use it as a tool, scan the project, then select the event, right click and select 'find callers', if you need to create your own tool, this is an open source project

 

Panther Dashboard Project  

 

Hope it helps

 

Enrique

0 Kudos
Message 2 of 15
(1,420 Views)

Hi,

 

Yeah, I use the panther dashboard from time to time, its very useful tool. It doesnt help solving this particular problem though as I can easily find all the possible callers. The main problem is that I got the request called many times by different callers and in very rare cases my app started to behave funky. I deducted that the behaviour is directly related to calling the request, but I had no idea who called it when the problem appeared.

 

This is why I had to add the call-chain input. Hope this makes my question easier to understand.

 

Thanks.

0 Kudos
Message 3 of 15
(1,412 Views)

https://dqmh.org/product/lumos/ maybe?




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


Message 4 of 15
(1,393 Views)

@joerg.hampel wrote:

https://dqmh.org/product/lumos/ maybe?


May or may not, I dont know yet cause the exact specs and features of Lumos are not jet tested (by us). It could be the answer, although I have the feeling that this particular problem - which is not related to tracking DQMH in real time - could be solved in a more simple manner.

0 Kudos
Message 5 of 15
(1,385 Views)

If you can reproduce the problem in source code, I have a Call Chain Cyclic Probe in this package: https://www.vipm.io/package/drjdpowell_lib_cyclic_table_probes/

 

Placed on any wire it will list a history of Call Chains. I used this just today to quickly debug a "who is doing what, when?"

 

In an exe you could make a drop-in vi that logs the Call Chain (or makes a DETT trace event).  Wouldn't require any inputs as it calls Call Chain internally, so quick to put in and take out 

Message 6 of 15
(1,369 Views)

Could be that I misunderstand something about your probe, but as far as I'm concerned a probe like that wont work. The problem is that actually nobody calls the module main when an event is occured. The EHL is registered to certain events, but generating the event doesnt really "call" anything. This is why I had to add that pesky extra string to the arguments, so I can pass who calls the requesting VI which generates the event.

0 Kudos
Message 7 of 15
(1,304 Views)

I was meaning for you to put the probe in that "requesting VI".  Though I guess this only works if that VI is non-reentrant, and I can't recall if DQMH has such.

0 Kudos
Message 8 of 15
(1,299 Views)

@1984  a écrit :

Hi,

 

Is there a way to know who called a given request? We found that knowing that could help a lot debugging certain bugs, but at this point the only way I could program it is to add a "call-chain" string argument to the request which is passed to the DQMH module where I could log this to a file (or whatever). This doesnt look too much of an elegant solution as for each requests I'd like to track I need to add an extra - otherwise useless - input.

 

Is there a more sophisticated way?

 

Thanks.


5 years ago when I started using DQMH, I also needed this to help debug and started to put an 'origin' string in the request arguments' cluster and in practice would put the name of the module calling the request.
Basic, works well enough for me.
Also sometimes, for request with reply, I add a timestamp in the request argument cluster so that the caller call indicate at which time it sent the request, then the receiver can check reception latency, this is useful when using the network module from HSE 😉


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 9 of 15
(1,290 Views)

@TiTou wrote:
this is useful when using the network module from HSE 

💜

 

=> https://dokuwiki.hampel-soft.com/code/dqmh/generic-networking




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


Message 10 of 15
(1,286 Views)