]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
OS X task_info: UNKNOWN task message [id 3405, to mach_task_self(), reply 0x.......
authorRhys Kidd <rhyskidd@gmail.com>
Mon, 11 May 2015 13:19:48 +0000 (13:19 +0000)
committerRhys Kidd <rhyskidd@gmail.com>
Mon, 11 May 2015 13:19:48 +0000 (13:19 +0000)
bz#254164

Before:

== 593 tests, 234 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 593 tests, 233 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15209

NEWS
coregrind/m_syswrap/priv_syswrap-darwin.h
coregrind/m_syswrap/syswrap-darwin.c

diff --git a/NEWS b/NEWS
index 4d88267914a5a7e504fa3a5036289239c7ae60d5..d57da2c633ee67ef3aa513e1a9a97659018abd93 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -70,6 +70,8 @@ where XXXXXX is the bug number as listed below.
 211926  Avoid compilation warnings in valgrind.h with -pedantic
 226609  Crediting upstream authors in man page
 231257  Valgrind omits path when executing script from shebang line
+254164  OS X task_info: UNKNOWN task message [id 3405, to mach_task_self(), 
+        reply 0x........]
 269360  s390x: Fix addressing mode selection for compare-and-swap
 333051  mmap of huge pages fails due to incorrect alignment
         == 339163
index 1360719fd4e501556fc0517f7efbe677701cff9f..e6cff5e5ac946baf264c0c920bef508855573cf6 100644 (file)
@@ -595,6 +595,7 @@ DECL_TEMPLATE(darwin, semaphore_destroy);
 DECL_TEMPLATE(darwin, task_policy_set);
 DECL_TEMPLATE(darwin, mach_ports_register);
 DECL_TEMPLATE(darwin, mach_ports_lookup);
+DECL_TEMPLATE(darwin, task_info);
 DECL_TEMPLATE(darwin, task_threads);
 DECL_TEMPLATE(darwin, task_suspend);
 DECL_TEMPLATE(darwin, task_resume);
index aca67844f5113abf8f0f88967a22545d9bbb58dc..adaaea22b8677734fbac06aa7bf49a4a2f6b5440 100644 (file)
@@ -5869,6 +5869,44 @@ POST(mach_ports_lookup)
 }
 
 
+PRE(task_info)
+{
+#pragma pack(4)
+    typedef struct {
+        mach_msg_header_t Head;
+        NDR_record_t NDR;
+        task_flavor_t flavor;
+        mach_msg_type_number_t task_info_outCnt;
+    } Request;
+#pragma pack()
+    
+    Request *req = (Request *)ARG1;
+    
+    PRINT("task_info(%s) flavor:%d", name_for_port(MACH_REMOTE), req->flavor);
+    
+    AFTER = POST_FN(task_info);
+}
+
+POST(task_info)
+{
+#pragma pack(4)
+    typedef struct {
+        mach_msg_header_t Head;
+        NDR_record_t NDR;
+        kern_return_t RetCode;
+        mach_msg_type_number_t task_info_outCnt;
+        integer_t task_info_out[52];
+    } Reply;
+#pragma pack()
+    
+    Reply *reply = (Reply *)ARG1;
+    if (!reply->RetCode) {
+    } else {
+        PRINT("mig return %d", reply->RetCode);
+    }
+}
+
+
 PRE(task_threads)
 {
 #pragma pack(4)
@@ -7758,6 +7796,10 @@ PRE(mach_msg_task)
       CALL_PRE(mach_ports_lookup);
       return;
 
+   case 3405:
+      CALL_PRE(task_info);
+      return;
+
    case 3407:
       CALL_PRE(task_suspend);
       return;