summaryrefslogtreecommitdiff
path: root/hurd/debugging.mdwn
blob: ae9b7bef21419ef224abb2c36245b1f818ab1427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[[!meta copyright="Copyright © 2007, 2008, 2010, 2013 Free Software Foundation,
Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]


# Strategies

* [[GDB]] -- the GNU debugger
  * [[gdb/Backtrace]]s
* [[subhurd]] -- running another Hurd system in parallel
  * In context of [[glibc/debugging/ld_so_console]]: [[!message-id
    "20111108190129.750BC2C098@topped-with-meat.com"]]
* [[rpctrace]] -- tracing [[RPC]]s
* [[microkernel/mach/gnumach/interface/syscall/mach_print]] sycall


# About Specific Packages

  * [[glibc]]
  * [[translator]]s
  * [[trap_in_the_kernel]]


# IRC, freenode, #hurd, 2013-06-30

    <hacklu> braunr: I don't understand your question totally, but I want to
      know how do you do this inspecting?  <braunr> i have a small test program
      that creates a thread, and inspect its state before any thread dies
    <braunr> i use portinfo
    <braunr> and rpctrace
    <braunr> (there is also vminfo but you're not likely to need it for what
      you're doing right now)
    <hacklu> I have used rpctrace before, but portinfo, I will try it.
    <hacklu> is portinfo show a process's all port use log?
    <braunr> not log
    <braunr> current state
    <hacklu> dump the port name space?
    <braunr> yes
    <hacklu> I found some names are not  continuous. how this come out?
    <braunr> continuous ?
    <hacklu> 101:send  103:send
    <hacklu> missing 102
    <braunr> some are freed
    <braunr> a lot actually
    <braunr> every RPC needs a reply port
    <braunr> a temporary receive right to get replies from servers
    <hacklu> so we can reuse the name which are freed before
    <braunr> of course