aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
diff options
context:
space:
mode:
authordarkjames <darkjames@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-01 22:00:59 +0000
committerdarkjames <darkjames@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-01 22:00:59 +0000
commit38ac1af4fd840687644562a887990f79141ecb6d (patch)
tree2f33652a773b48dac982ea60bc078eb981dd1217 /dumpcap.c
parent922821d5798686c6ab16f8bbcd02cd8fa6aeac7b (diff)
Try to get more information about AV.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@37861 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'dumpcap.c')
-rw-r--r--dumpcap.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/dumpcap.c b/dumpcap.c
index d142d6f547..98fb5784ca 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -643,7 +643,17 @@ open_capture_device(interface_options *interface_opts,
interface_opts->promisc_mode, CAP_READ_TIMEOUT,
*open_err_str);
} __except(TRUE) {
- g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_ERROR, "Exception from pcap_open_live(): 0x%x (0x%x)\n", GetExceptionCode(), ERROR_PROC_NOT_FOUND);
+ if (GetExceptionCode() == STATUS_ACCESS_VIOLATION) {
+ EXCEPTION_POINTERS *ex = GetExceptionInformation();
+
+ g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_ERROR, "Exception from pcap_open_live(): %s AV @ %p IP: %p\n",
+ (ex->ExceptionInformation[0] ? "WRITE" : "READ"),
+ (void *) ex->ExceptionInformation[1],
+ (void *) ex->ExceptionAddress);
+
+ g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_DEBUG, "open_err_str: %p, %p", open_err_str, *open_err_str);
+ } else
+ g_log(LOG_DOMAIN_CAPTURE_CHILD, G_LOG_LEVEL_ERROR, "Exception from pcap_open_live(): 0x%x (0x%x)\n", GetExceptionCode(), ERROR_PROC_NOT_FOUND);
pcap_h = NULL;
}
#else