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.
 
int nasl_trace_enabled (void)
 Checks if the nasl_trace_fp is set.
 
const char * nasl_get_plugin_filename (void)
 Get the current launched plugin filename.
 
void nasl_set_plugin_filename (const char *)
 Set the current launched plugin filename.
 
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 *  function)

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}
static char * debug_filename
Definition: nasl_debug.c:30
static GHashTable * functions_filenames
Definition: nasl_debug.c:34

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 *  c)

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

2828{
2829 tree_cell *ctx;
2830 if (!includes_hash)
2831 return -2;
2832
2833 if ((ctx = g_hash_table_lookup (includes_hash, c))) {
2834 return ctx->include_order;
2835 }
2836 return -1;
2837}
GHashTable * includes_hash
Definition: nasl_tree.h:94
int include_order
Definition: nasl_tree.h:100

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{
45}
static char debug_plugin_filename[PATH_MAX]
Definition: nasl_debug.c:32

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 lexic,
char *  msg,
  ... 
)

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}
tree_cell * script_name(lex_ctxt *lexic)
char * name
Definition: scanneraux.h:35
struct script_infos * script_infos
Definition: nasl_lex_ctxt.h:30
struct struct_lex_ctxt * up_ctxt
Definition: nasl_lex_ctxt.h:24

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 __attribute__(), _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_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 *  filename)

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 *  function)

Definition at line 99 of file nasl_debug.c.

100{
101 assert (function);
102
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 *  funname)

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}
FILE * nasl_trace_fp
Definition: exec.c:357

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: