I don't know of such things. For TotalView there are routines such as 

#if defined(PETSC_USE_DEBUG)
#include <../src/sys/totalview/tv_data_display.h>
PETSC_UNUSED static int TV_display_type(const struct _p_Vec *v)
{
  const PetscScalar *values;
  char              type[32];
  PetscErrorCode    ierr;


  TV_add_row("Local rows", "int", &v->map->n);
  TV_add_row("Global rows", "int", &v->map->N);
  TV_add_row("Typename", TV_ascii_string_type, ((PetscObject)v)->type_name);
  ierr = VecGetArrayRead((Vec)v,&values);CHKERRQ(ierr);
  ierr = PetscSNPrintf(type,32,"double[%d]",v->map->n);CHKERRQ(ierr);
  TV_add_row("values",type, values);
  ierr = VecRestoreArrayRead((Vec)v,&values);CHKERRQ(ierr);
  return TV_format_OK;
}
#endif

but they may not have been used for many years and hence may no longer work.

   Barry


> On Mar 5, 2019, at 2:14 PM, Zhang, Junchao via petsc-dev 
> <petsc-dev@mcs.anl.gov> wrote:
> 
> In an Arm training class, I requested a DDT feature from John Linford from 
> Arm Inc, which now owns Allinea DDT.  Basically, I want DDT to correctly 
> display petsc variable-lengthed arrays and void* pointers.  From John's 
> feedback, it looks DDT could support it. 
> Does anyone already have custom pretty-printers in gdb for petsc?  Otherwise, 
> I think we should make one and perhaps let Arm ship with its product.
> 
> --Junchao Zhang
> 
> ---------- Forwarded message ---------
> From: John Linford <john.linf...@arm.com>
> Date: Tue, Mar 5, 2019 at 1:16 PM
> Subject: Re: Arm DDT feature questions
> To: Zhang, Junchao <jczh...@mcs.anl.gov>
> 
> 
> Hi Junchao,
> 
> The Forge developers came back with some answers.  Please see below.  Thanks,
> 
> Sorry for the delay. Please find answer to your questions:
> 
>  
> Does Arm DDT support user-defined array length and user-defined pointer 
> casting from a custom file, which sets the rules and is provided by users? 
> 
>  
> Yes, DDT does support this through the user of GDB pretty printers. The best 
> example is the support of STL vectors in DDT. There is also a simple example 
> in /path/to/forge/example/fruit* and explanations in the UG.
> 
> I have been trying to fiddle with pretty printers and PETSC (this could make 
> a nice blog article) but I only managed to make it work in GDB, not in DDT 
> for some reason. I’ll let you know if I manage to get anything interesting.
> 
> We could possibly make a feature request to support PETSC datatypes. If PETSC 
> developers maintain GDB pretty printers between versions, I think this is 
> something we could look at.
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  
> John C. Linford | Principal Applications Engineer | Development Solutions
> john.linf...@arm.com | LinkedIn
> Direct/Mobile: +1-737-218-3529
> Arm HPC Ecosystem | www.arm.com
>  
>  
> 
> 
> From: John Linford
> Sent: Tuesday, February 19, 2019 12:31:56 PM
> To: Zhang, Junchao
> Subject: Re: Arm DDT feature questions
>  
> Hi Junchao,
> 
> Thanks for the follow-up and glad you could attend the workshop.  I've sent 
> this over to the tools group and should have an answer for you soon.  Thanks,
> 
>  
> John C. Linford | Principal Applications Engineer | Development Solutions
> john.linf...@arm.com | LinkedIn
> Direct/Mobile: +1-737-218-3529
> Arm HPC Ecosystem | www.arm.com
>  
>  
> 
> 
> From: Zhang, Junchao <jczh...@mcs.anl.gov>
> Sent: Friday, February 15, 2019 5:28:59 PM
> To: John Linford
> Subject: Arm DDT feature questions
>  
> Hi, John,
>   Does Arm DDT support user-defined array length and user-defined pointer 
> casting from a custom file, which sets the rules and is provided by users?  
> Suppose I have a struct
> typedef struct {
>   int type;
>   int len;
>   double *p;
>   void *data; 
> } Vec;
> 
> Currently, to display a Vec variable, I have to manually tell DDT length of 
> array p[] is given by len, and type of void *data is Vec_MPI* if type==1, is 
> Vec_Seq* if type==2, so on so forth. I have to do the manual work every time 
> when I display variables of type Vec. It is not convenient. 
> Structures with void pointers is heavily used by PETSc, which is a numerical 
> library widely used in HPC. It would be nice if DDT supports PETSc objects 
> display natively.
> Thank you 
> --Junchao Zhang
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose the 
> contents to any other person, use it for any purpose, or store or copy the 
> information in any medium. Thank you.

Reply via email to