]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix UNKNOWN task message [id 3406, to mach_task_self(), reply 0x........] (task_set_info)
authorRhys Kidd <rhyskidd@gmail.com>
Sat, 13 Jun 2015 06:16:10 +0000 (06:16 +0000)
committerRhys Kidd <rhyskidd@gmail.com>
Sat, 13 Jun 2015 06:16:10 +0000 (06:16 +0000)
bz#349086

On OS X 10.10

Before:

== 592 tests, 222 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 592 tests, 222 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

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

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

diff --git a/NEWS b/NEWS
index d72f3c86bcba55ae9ec784b9669ca305fe9568eb..40089f93ac6f189eb1521150087ff94781d290d4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -237,6 +237,8 @@ where XXXXXX is the bug number as listed below.
 348748  Fix redundant condition
 348890  Fix clang warning about unsupported --param inline-unit-growth=900
 348949  Bogus "ERROR: --ignore-ranges: suspiciously large range"
+349086  Fix UNKNOWN task message [id 3406, to mach_task_self(), 
+        reply 0x........] (task_set_info)
 n-i-bz  Provide implementations of certain compiler builtins to support
         compilers who may not provide those
 n-i-bz  Old STABS code is still being compiled, but never used. Remove it.
index 090317921c56ab6fce8a7742b43c2e4abbfe8aff..051d0f55a49f58a9cce242b8758778261df5ac90 100644 (file)
@@ -598,6 +598,7 @@ 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_set_info);
 DECL_TEMPLATE(darwin, task_threads);
 DECL_TEMPLATE(darwin, task_suspend);
 DECL_TEMPLATE(darwin, task_resume);
index d065b1cda4564c628019bceb66f196c4b468a815..2953d0c982d5ee62f67eb26bd085cdb7cb258e91 100644 (file)
@@ -6078,6 +6078,42 @@ POST(task_info)
 }
 
 
+PRE(task_set_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_inCnt;
+        integer_t task_info_in[52];
+    } Request;
+#pragma pack()
+    
+    Request *req = (Request *)ARG1;
+    
+    PRINT("task_set_info(%s) flavor:%d", name_for_port(MACH_REMOTE), req->flavor);
+    
+    AFTER = POST_FN(task_set_info);
+}
+
+POST(task_set_info)
+{
+#pragma pack(4)
+    typedef struct {
+        mach_msg_header_t Head;
+        NDR_record_t NDR;
+        kern_return_t RetCode;
+    } Reply;
+#pragma pack()
+    
+    Reply *reply = (Reply *)ARG1;
+    if (!reply->RetCode) {
+    } else {
+        PRINT("mig return %d", reply->RetCode);
+    }
+}
+
 PRE(task_threads)
 {
 #pragma pack(4)
@@ -7984,11 +8020,12 @@ PRE(mach_msg_task)
    case 3404:
       CALL_PRE(mach_ports_lookup);
       return;
-
    case 3405:
       CALL_PRE(task_info);
       return;
-
+   case 3406:
+      CALL_PRE(task_set_info);
+      return;
    case 3407:
       CALL_PRE(task_suspend);
       return;