新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式系統中進程間通信的監視方法

        嵌入式系統中進程間通信的監視方法

        作者: 時間:2016-10-08 來源:網絡 收藏
                     wait(status);    /* 等待被監視進程狀態變化 */
                     ptrace(PTRACE_SYSCALL, traced_process, NULL, NULL);

        參數為 PTRACE_ATTACH 的 ptrace 對被監視進程在內核中的進程結構進行修改。使被監視進程成為當前程序的子進程。一旦被監視進程的狀態發生變化, wait() 將返回。程序再次調用 ptrace 。這次的參數為 PTRACE_SYSCALL 。被監視進程的進程結構再次被修改,其 trace 標志被激活。內核將在被監視進程的每一次系統調用時,觸發當前程序的運行。

        本文引用地址:http://www.104case.com/article/201610/305865.htm

                     While (1) {
                         /* 等待被監視程序調用系統調用或是發生其它狀態變化 */
                         wait(status); 
                         
                         /* 如果被監視進程退出,函數返回真。程序退出 */
                         if ( WIFEXITED(status) ) 
                             break;
                         
                         ptrace(PTRACE_GETREGS, traced_process, 0, u_in);
                         if (u_in.orig_eax == 102  u_in.ebx == SYS_SENDTO) { 
                             if (syscall_entry == 0) {  /* syscall entry */
                                 insyscall = 1;
                                 printf(call sendto()n);
                             }                           
        				
                    
                        
        			
        							

        關鍵詞:

        評論


        相關推薦

        技術專區

        主站蜘蛛池模板: 镇坪县| 泰安市| 大邑县| 抚远县| 盘锦市| 民乐县| 遂溪县| 平罗县| 呼和浩特市| 军事| 满洲里市| 永春县| 新兴县| 皋兰县| 清镇市| 贵州省| 淅川县| 黎川县| 鹿泉市| 吴忠市| 大悟县| 绥中县| 张家川| 永州市| 英超| 禹城市| 伊宁县| 英山县| 贡嘎县| 黄浦区| 泸州市| 新源县| 永新县| 汝城县| 兰州市| 连南| 米泉市| 苏尼特左旗| 科技| 静宁县| 阿克苏市|