• Nils Goroll's avatar
    Add VCL source information to panics · 4f285262
    Nils Goroll authored
    Now that we have the vpi ref as set by VPI_Count() available via struct
    wrk_vpi, we can dump our position in VCL at the time of the panic.
    
    Additional changes:
    
    * move handling info from pan_wrk() to the new VPI_Panic()
    * output the source index of vcl sources with the name in
      VCL_Panic()
    
    The additional panic section looks like this:
    
    vpi = 0x7f5478be93b0 {
      handling (VCL::return) = 0x0 (none),
      ref = 6,
      vpi_ref = 0x7f54753fb530 {
        source = 0 (\"<vcl.inline>\"),
        offset = 365,
        line = 20,
        pos = 25,
        src = \"vtc.panic(\\\"Had Panic header: \\\" + resp.ht[...]\"
      },
    },
    
    The source line is truncated (and truncation denoted by [...]) if longer
    than 40 characters.
    
    If the in-memory vcl data source string looks truncated, tok = "..." may
    be output instead of src "...".
    4f285262
cache_varnishd.h 17.6 KB