OpenVAS Scanner  22.7.9
nasl_debug.h File Reference
#include "nasl_lex_ctxt.h"
Include dependency graph for nasl_debug.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void nasl_perror (lex_ctxt *, char *,...)
 
void nasl_trace (lex_ctxt *, char *,...)
 Prints debug message in printf fashion to nasl_trace_fp if it exists. More...
 
int nasl_trace_enabled (void)
 Checks if the nasl_trace_fp is set. More...
 
const char * nasl_get_plugin_filename (void)
 Get the current launched plugin filename. More...
 
void nasl_set_plugin_filename (const char *)
 Set the current launched plugin filename. More...
 
void nasl_set_filename (const char *)
 
void nasl_set_function_filename (const char *)
 
const char * nasl_get_filename (const char *)
 
void nasl_set_function_name (const char *)
 
int nasl_get_include_order (const char *)
 
const char * nasl_get_function_name (void)
 

Function Documentation

◆ nasl_get_filename()

const char* nasl_get_filename ( const char *  )

Definition at line 60 of file nasl_debug.c.

61 {
62  char *ret = NULL;
63 
64  if (functions_filenames && function)
65  ret = g_hash_table_lookup (functions_filenames, function);
66  return ret ? ret : debug_filename;
67 }

References debug_filename, and functions_filenames.

Referenced by check_description_block_xref(), nasl_func_call(), nasl_lint(), nasl_lint_call(), nasl_lint_def(), and yyparse().

Here is the caller graph for this function:

◆ nasl_get_function_name()

const char* nasl_get_function_name ( void  )

◆ nasl_get_include_order()

int nasl_get_include_order ( const char *  )

Definition at line 2815 of file nasl_grammar.tab.c.

2816 {
2817  tree_cell *ctx;
2818  if (!includes_hash)
2819  return -2;
2820 
2821  if ((ctx = g_hash_table_lookup (includes_hash, c))) {
2822  return ctx->include_order;
2823  }
2824  return -1;
2825 }

References TC::include_order, and includes_hash.

Referenced by check_called_files(), and nasl_lint_call().

Here is the caller graph for this function:

◆ nasl_get_plugin_filename()

const char* nasl_get_plugin_filename ( void  )

Get the current launched plugin filename.

Returns
Filename of the current running plugin.

Definition at line 42 of file nasl_debug.c.

43 {
44  return debug_plugin_filename;
45 }

References debug_plugin_filename.

Referenced by exec_ssh_cmd(), nasl_sftp_enabled_check(), nasl_ssh_connect(), nasl_ssh_request_exec(), nasl_ssh_set_login(), nasl_ssh_shell_open(), nasl_ssh_shell_write(), print_pcap_error(), read_stream_connection_unbuffered(), socket_negotiate_ssl(), and write_stream_connection4().

Here is the caller graph for this function:

◆ nasl_perror()

void nasl_perror ( lex_ctxt ,
char *  ,
  ... 
)

Definition at line 111 of file nasl_debug.c.

112 {
113  va_list param;
114  gchar debug_message[4096];
115  gchar *final_message;
116  char *script_name = "";
117  lex_ctxt *lexic2 = NULL;
118  int line_nb = 0;
119  va_start (param, msg);
120 
121  if (lexic != NULL)
122  {
123  script_name = lexic->script_infos->name;
124  if (script_name == NULL)
125  script_name = "";
126 
127  /* Climbing up to find a line number */
128  for (lexic2 = lexic; lexic2 != NULL; lexic2 = lexic2->up_ctxt)
129  {
130  if (lexic2->line_nb != 0)
131  {
132  line_nb = lexic2->line_nb;
133  break;
134  }
135  }
136  }
137 
138  g_vsnprintf (debug_message, sizeof (debug_message), msg, param);
139  if ((debug_funname != NULL) && (g_strcmp0 (debug_funname, "") != 0))
140  final_message = g_strconcat ("In function '", debug_funname,
141  "()': ", debug_message, NULL);
142  else
143  final_message = g_strdup (debug_message);
144 
145  if (g_strcmp0 (debug_filename, script_name) == 0)
146  g_message ("[%d](%s:%d) %s", getpid (), script_name, line_nb,
147  final_message);
148  else
149  g_message ("[%d](%s)(%s:%d) %s", getpid (), script_name, debug_filename,
150  line_nb, final_message);
151  g_free (final_message);
152  va_end (param);
153 }

References debug_filename, debug_funname, struct_lex_ctxt::line_nb, script_infos::name, struct_lex_ctxt::script_infos, script_name(), and struct_lex_ctxt::up_ctxt.

Referenced by _http_req(), add_hostname(), add_named_var_to_ctxt(), add_numbered_var_to_ctxt(), add_var_to_list(), affect_to_anon_var(), alloc_RE_cell(), cell2int3(), cell_cmp(), copy_anon_var(), copy_array(), crypt_data(), decl_local_variables(), decl_nasl_func(), encrypt_stream_data(), forge_icmp_packet(), forge_icmp_v6_packet(), forge_igmp_packet(), forge_igmp_v6_packet(), forge_ip_packet(), forge_tcp_packet(), forge_tcp_v6_packet(), forge_udp_packet(), forge_udp_v6_packet(), get_array_elem(), get_icmp_element(), get_icmp_v6_element(), get_ip_element(), get_ip_v6_element(), get_kb_list(), get_tcp_element(), get_tcp_option(), get_tcp_v6_element(), get_tcp_v6_option(), get_udp_element(), get_udp_v6_element(), get_var_ref_by_num(), init_nasl_library(), insert_ip_options(), insert_ip_v6_options(), insert_nasl_func(), insert_tcp_options(), insert_tcp_v6_options(), make_array_from_elems(), mpi_from_string(), mylex(), nasl_affect(), nasl_array_iterator(), nasl_bf_cbc(), nasl_close_socket(), nasl_crap(), nasl_dec2str(), nasl_defined_func(), nasl_dsa_do_sign(), nasl_dump_frame(), nasl_egrep(), nasl_ereg(), nasl_ereg_replace(), nasl_eregmatch(), nasl_exec(), nasl_file_close(), nasl_file_open(), nasl_file_read(), nasl_file_seek(), nasl_file_stat(), nasl_file_write(), nasl_find_in_path(), nasl_forge_frame(), nasl_fread(), nasl_func_call(), nasl_fwrite(), nasl_gcrypt_hash(), nasl_get_mtu(), nasl_get_preference(), nasl_get_sign(), nasl_get_sock_info(), nasl_get_source_port(), nasl_get_tmp_dir(), nasl_get_var_by_num(), nasl_gettimeofday(), nasl_hmac_sha256(), nasl_incr_variable(), nasl_insert_hexzeros(), nasl_insstr(), nasl_join_multicast_group(), nasl_keyexchg(), nasl_keys(), nasl_leave_multicast_group(), nasl_lint_call(), nasl_lint_defvar(), nasl_lm_owf_gen(), nasl_localtime(), nasl_mac(), nasl_make_array(), nasl_make_list(), nasl_match(), nasl_mktime(), nasl_nt_owf_gen(), nasl_ntlm2_response(), nasl_ntlm_response(), nasl_ntlmv1_hash(), nasl_ntlmv2_hash(), nasl_ntlmv2_response(), nasl_ntv2_owf_gen(), nasl_open_privileged_socket(), nasl_open_sock_tcp_bufsz(), nasl_open_stream_cipher(), nasl_ord(), nasl_pcap_next(), nasl_pread(), nasl_prf(), nasl_rawstring(), nasl_read_var_ref(), nasl_recv_line(), nasl_rsa_private_decrypt(), nasl_rsa_public_encrypt(), nasl_same_host(), nasl_scanner_get_port(), nasl_send(), nasl_send_capture(), nasl_send_frame(), nasl_send_packet(), nasl_send_v6packet(), nasl_smb3kdf(), nasl_smb_sign(), nasl_socket_cert_verify(), nasl_socket_check_ssl_safe_renegotiation(), nasl_socket_get_cert(), nasl_socket_get_ssl_session_id(), nasl_socket_negotiate_ssl(), nasl_socket_ssl_do_handshake(), nasl_sort_array(), nasl_split(), nasl_str_replace(), nasl_stridx(), nasl_string(), nasl_substr(), nasl_target_is_ipv6(), nasl_telnet_init(), nasl_unlink(), print_gcrypt_error(), print_gpgme_error(), print_tls_error(), print_uncall_files(), ref_cell(), replace_kb_item(), resolve_hostname(), resolve_hostname_to_multiple_ips(), script_add_preference(), script_category(), script_dependencies(), script_exclude_keys(), script_get_preference(), script_get_preference_file_content(), script_get_preference_file_location(), script_mandatory_keys(), script_require_keys(), script_tag(), script_xref(), set_ip_elements(), set_ip_v6_elements(), set_kb_item(), set_kb_item_volatile(), set_tcp_elements(), set_tcp_v6_elements(), set_udp_elements(), set_udp_v6_elements(), validate_script_xref(), verify_cipher_id(), verify_session_id(), and yyparse().

Here is the call graph for this function:

◆ nasl_set_filename()

void nasl_set_filename ( const char *  )

Definition at line 88 of file nasl_debug.c.

89 {
90  assert (filename);
91 
92  if (filename == debug_filename)
93  return;
94  g_free (debug_filename);
95  debug_filename = g_strdup (filename);
96 }

References debug_filename.

Referenced by exec_nasl_script(), init_nasl_ctx(), nasl_func_call(), nasl_lint_call(), nasl_lint_def(), and yyparse().

Here is the caller graph for this function:

◆ nasl_set_function_filename()

void nasl_set_function_filename ( const char *  )

Definition at line 99 of file nasl_debug.c.

100 {
101  assert (function);
102 
103  if (!functions_filenames)
105  g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
106  g_hash_table_insert (functions_filenames, g_strdup (function),
107  g_strdup (debug_filename));
108 }

References debug_filename, and functions_filenames.

Referenced by yyparse().

Here is the caller graph for this function:

◆ nasl_set_function_name()

void nasl_set_function_name ( const char *  )

Definition at line 73 of file nasl_debug.c.

74 {
75  if (funname == debug_funname)
76  return;
77  g_free (debug_funname);
78  debug_funname = g_strdup (funname);
79 }

References debug_funname.

Referenced by nasl_func_call().

Here is the caller graph for this function:

◆ nasl_set_plugin_filename()

void nasl_set_plugin_filename ( const char *  filename)

Set the current launched plugin filename.

Parameters
[in]filenameFilename of the current plugin.

Definition at line 53 of file nasl_debug.c.

54 {
55  strncpy (debug_plugin_filename, filename, sizeof (debug_plugin_filename));
56  debug_plugin_filename[PATH_MAX - 1] = '\0';
57 }

References debug_plugin_filename.

Referenced by exec_nasl_script().

Here is the caller graph for this function:

◆ nasl_trace()

void nasl_trace ( lex_ctxt lexic,
char *  msg,
  ... 
)

Prints debug message in printf fashion to nasl_trace_fp if it exists.

Like nasl_perror, but to the nasl_trace_fp.

Definition at line 175 of file nasl_debug.c.

176 {
177  va_list param;
178  char debug_message[4096];
179  char *script_name = "", *p;
180 
181  if (nasl_trace_fp == NULL)
182  return;
183  va_start (param, msg);
184 
185  if (lexic != NULL)
186  {
187  script_name = lexic->script_infos->name;
188  if (script_name == NULL)
189  script_name = "";
190  }
191 
192  vsnprintf (debug_message, sizeof (debug_message), msg, param);
193  for (p = debug_message; *p != '\0'; p++)
194  ;
195  if (p == debug_message || p[-1] != '\n')
196  fprintf (nasl_trace_fp, "[%d](%s) %s\n", getpid (), script_name,
197  debug_message);
198  else
199  fprintf (nasl_trace_fp, "[%d](%s) %s", getpid (), script_name,
200  debug_message);
201 
202  va_end (param);
203 }

References script_infos::name, nasl_trace_fp, struct_lex_ctxt::script_infos, and script_name().

Referenced by affect_to_anon_var(), examine_signatures(), nasl_func_call(), nasl_read_var_ref(), and nasl_verify_signature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nasl_trace_enabled()

int nasl_trace_enabled ( void  )

Checks if the nasl_trace_fp is set.

Returns
0 if nasl_trace_fp == NULL, 1 otherwise.

Definition at line 161 of file nasl_debug.c.

162 {
163  if (nasl_trace_fp == NULL)
164  return 0;
165  else
166  return 1;
167 }

References nasl_trace_fp.

Referenced by affect_to_anon_var(), examine_signatures(), nasl_func_call(), and nasl_read_var_ref().

Here is the caller graph for this function:
struct_lex_ctxt::line_nb
int line_nb
Definition: nasl_lex_ctxt.h:33
TC::name
char * name
Definition: nasl_tree.h:97
nasl_trace_fp
FILE * nasl_trace_fp
Definition: exec.c:357
script_infos::name
char * name
Definition: scanneraux.h:35
debug_plugin_filename
static char debug_plugin_filename[PATH_MAX]
Definition: nasl_debug.c:32
debug_funname
static char * debug_funname
Definition: nasl_debug.c:31
struct_lex_ctxt::up_ctxt
struct struct_lex_ctxt * up_ctxt
Definition: nasl_lex_ctxt.h:24
TC::include_order
int include_order
Definition: nasl_tree.h:100
script_name
tree_cell * script_name(lex_ctxt *lexic)
Definition: nasl_scanner_glue.c:234
struct_lex_ctxt::script_infos
struct script_infos * script_infos
Definition: nasl_lex_ctxt.h:30
TC
Definition: nasl_tree.h:94
struct_lex_ctxt
Definition: nasl_lex_ctxt.h:23
debug_filename
static char * debug_filename
Definition: nasl_debug.c:30
functions_filenames
static GHashTable * functions_filenames
Definition: nasl_debug.c:34
includes_hash
GHashTable * includes_hash
Definition: nasl_grammar.tab.c:116