From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by sourceware.org (Postfix) with ESMTPS id 616E2385DC05 for ; Sat, 11 Apr 2020 21:29:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 616E2385DC05 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=n54@gmx.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1586640565; bh=gMJVB1uQ0q8EWp22P2MM8B64deB/9FraIj/gtnvnRvY=; h=X-UI-Sender-Class:To:Cc:References:From:Subject:Date:In-Reply-To; b=PJ9jm0t7Xdd9eMEI+W1BtOqc8StgqQaBZa3DpfXahKB/wW6yHdkLnuuF86dPxNXjs 3rKhbCtsDH/eeEL2nMHmZO8sYQfPE9+e6okTWK05OCV5E00/Q+esL2izbKt9sOdHM7 lwuUxGE9eByrkspOdHBpEB7NfOkKOjXVZsMLYeMM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.241] ([89.79.191.25]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MjS9C-1iyk2h02NG-00ktoq; Sat, 11 Apr 2020 23:29:25 +0200 To: Simon Marchi , gdb-patches@sourceware.org Cc: tom@tromey.com References: <20200402200916.26504-1-n54@gmx.com> <20200406093753.13772-1-n54@gmx.com> <5d7ee373-df4f-6a05-fda3-d8d6f4d1efcc@simark.ca> From: Kamil Rytarowski Autocrypt: addr=n54@gmx.com; prefer-encrypt=mutual; keydata= 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 4XSbcg== Subject: Re: [PATCH v3] Implement "info proc mappings" for NetBSD Message-ID: <154c0a3c-b59e-1e9b-504e-27bd7e47b2a6@gmx.com> Date: Sat, 11 Apr 2020 23:28:09 +0200 User-Agent: Mozilla/5.0 (X11; NetBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <5d7ee373-df4f-6a05-fda3-d8d6f4d1efcc@simark.ca> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:UUcRLfwg5b9X4XHK/llFz1pwgjXT86czWqvHZn+o3+2lZht24sa epKi0o+MLXpaIeH2M9I73zHbc46ypTabwPUfZ2CknXS0ZifZZybEH+yRCAWHUgnKfchx4sG ZAlKb3JxB0+di2iycn2IEx/QFfsBcDkgAcL+9Y9xC9D3n5Iy39gh3pq1XFzLTLkkXjcfguh PzpJnE4VyH/0CCf0Ft7ug== X-UI-Out-Filterresults: notjunk:1;V03:K0:dm6VHuULSTE=:FXddvY6ASQ2DTRVp5lRyb9 rvl/TIG/73rf9GCng6gzoxrm8QLjzKovpeMIzVRLjHKmFFEHo4O7Jziymy4C6rA5NT+5VhQlU y5oHWZV04rXVIxtcCI1pHTtByvT1ODfdyMPjc+EQW+IlAUhF6s1FySWQCVXNKINKcUJ8bYI2F pxLh06cmRMLUo8TH6sPeZG9TDEi+48Q59UToK7l+JIpN+d+7tTndDp2K5jVPMZZB7JMp9BEbq YQ3xVfcfvarn9HHuiR4aADxh982COGaFI6diB55uD8cyA8MEpOwCUac2X8XbfMoKCMwJw69Qj xgrC8JFlNpEMLhfLG1m7BIo/xM8plbGxY5BSKQMDwTPQJJ36qp8g1bjQ3rzqiebgzpG8eUtAj 5X0TRzU/XGGHGiuGrbjUtBCpEUb4tFk/rJiNMyRZJpF2/QPne6RZraYQtlSjl0WX3++Hgkmpy HFGytjz3/9e0VN5fhnihOVFKFgsjq/EZntVDyzTGIzmdMYnTN6YZFd48pkj3kG+Oys/kEN11Q NPMpclxcuMTh28ektCdTr5tN6oCE61/lRNG7IQMmg418nk46kx0Qiyxjt04ceVel/K3QmirRJ KP+1RKOjmc/2GgSUKXK20GiB1qLuu2QPaDJMrH55F1EQjhxwL/yCeioHdZsHmm3BmGS/bqUEz b+Xjf+Cb2da/86l8c1TOBo4wh6LNh3kvKVgRJtyQH5ahaTTfGppo12UHmm43oijP/Jt/l5vR3 I/XqSNcTncwuynyIWfqbekUqFVAPL/Qo89iC81h3DFff7m49cimL/wg28XaFI4BnwlPpGGYSC sNqZylzsLZgbyaH+ldqOU/gmS/xTwVqZW1FRHKJrBr22RcemSJGC8rcECqjuwWyZTuWJb46Y0 Clbv5YqTNSwNAzzEeWYVPrAZFCe5EAyh83ZZFlwRGEcdvq8K5S8327cuHT4MC11YlZE3hmNvZ KYKUwA3A1weiMQJjZ2kXGWIjg3deaU7wevDMRjPvMSlR2GitwldTHN/H9LUk4oWr4yUunBibe /xd+mKtkMzVXTZCQaYCII/4e5IE35deAbcQFwrgNPgDQkxKtdpFt+C4R9UTvNHw9j2z7nCbPb LVO250V2z2r4hK/RAQI8NQL5VwaSspK4xGOwil01gcxIyse55xBNFO+APQSdEwyur9gtzWB+1 F5ouEMfXB5emrAFnSSjy1+6vrzgn5hmMnq8/taCfcZvv+7OAu/xPSgKCQvKZfFg1mJS1w= X-Spam-Status: No, score=-28.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 21:29:46 -0000 On 11.04.2020 23:05, Simon Marchi wrote: > On 2020-04-06 5:37 a.m., Kamil Rytarowski wrote: >> @@ -39,3 +42,148 @@ nbsd_nat_target::pid_to_exec_file (int pid) >> return NULL; >> return buf; >> } >> + >> +/* Retrieve all the memory regions in the specified process. */ >> + >> +static gdb::unique_xmalloc_ptr >> +nbsd_kinfo_get_vmmap (pid_t pid, size_t *size) >> +{ >> + int mib[5] =3D {CTL_VM, VM_PROC, VM_PROC_MAP, pid, >> + sizeof (struct kinfo_vmentry)}; >> + >> + size_t length =3D 0; >> + if (sysctl (mib, ARRAY_SIZE (mib), NULL, &length, NULL, 0)) >> + { >> + *size =3D 0; >> + return NULL; >> + } >> + >> + /* Prereserve more space. */ >> + length =3D length * 5 / 3; > > Why is this needed? > This length is volatile and can be larger on the 2nd sysctl(3) call. We can call this function against a running process that can enlarge its usage of address space in this time window. >> + >> + gdb::unique_xmalloc_ptr kiv >> + ((struct kinfo_vmentry *) xcalloc (length, 1)); > > Let's use XCNEWVAR here. It doesn't matter in this case, but for consis= tency. It does > check that we are not trying to allocate space for a non-POD type. You = can use like: > > XCNEWVAR (kinfo_vmentry, length) > > You can also use XNEWVAR if you don't care about the buffer being initia= lized to zeros. > OK. >> diff --git a/gdb/nbsd-tdep.h b/gdb/nbsd-tdep.h >> index c99a8b537b6..81bdb2510f5 100644 >> --- a/gdb/nbsd-tdep.h >> +++ b/gdb/nbsd-tdep.h >> @@ -25,4 +25,22 @@ struct link_map_offsets *nbsd_lp64_solib_svr4_fetch_= link_map_offsets (void); >> >> int nbsd_pc_in_sigtramp (CORE_ADDR, const char *); >> >> +/* Output the header for "info proc mappings". ADDR_BIT is the size >> + of a virtual address in bits. */ >> + >> +extern void nbsd_info_proc_mappings_header (int addr_bit); >> + >> +/* Output description of a single memory range for "info proc >> + mappings". ADDR_BIT is the size of a virtual address in bits. The >> + KVE_START, KVE_END, KVE_OFFSET, KVE_FLAGS, and KVE_PROTECTION >> + parameters should contain the value of the corresponding fields in >> + a 'struct kinfo_vmentry'. The KVE_PATH parameter should contain a >> + pointer to the 'kve_path' field in a 'struct kinfo_vmentry'. */ >> + >> +extern void nbsd_info_proc_mappings_entry (int addr_bit, ULONGEST kve_= start, >> + ULONGEST kve_end, >> + ULONGEST kve_offset, >> + int kve_flags, int kve_protection, >> + const void *kve_path); > > I'd make the last parameter a `const char *` directly, since this is wha= t the function > expects to receive. And remove the reinterpret_casts. > OK. > Simon >