aboutsummaryrefslogtreecommitdiffstats
path: root/examples/complex/remote_debug.py
blob: fa6f3d331e7fb33c3b3049a698fc7c453e9e0056 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"""
This script enables remote debugging of the mitmproxy *UI* with PyCharm.
For general debugging purposes, it is easier to just debug mitmdump within PyCharm.

Usage:
    - pip install pydevd on the mitmproxy machine
    - Open the Run/Debug Configuration dialog box in PyCharm, and select the Python Remote Debug configuration type.
    - Debugging works in the way that mitmproxy connects to the debug server on startup.
      Specify host and port that mitmproxy can use to reach your PyCharm instance on startup.
    - Adjust this inline script accordingly.
    - Start debug server in PyCharm
    - Set breakpoints
    - Start mitmproxy -s remote_debug.py
"""


def load(l):
    import pydevd
    pydevd.settrace("localhost", port=5678, stdoutToServer=True, stderrToServer=True)
#fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#ifndef __ASM_APICDEF_H
#define __ASM_APICDEF_H

#define APIC_DEFAULT_PHYS_BASE 0xfee00000
 
#define APIC_ID       0x20
#define     APIC_ID_MASK             (0xFFu<<24)
#define     GET_APIC_ID(x)           (((x)>>24)&0xFFu)
#define     SET_APIC_ID(x)           (((x)<<24))
#define APIC_LVR      0x30
#define     APIC_LVR_MASK            0xFF00FF
#define     GET_APIC_VERSION(x)      ((x)&0xFF)
#define     GET_APIC_MAXLVT(x)       (((x)>>16)&0xFF)
#define     APIC_INTEGRATED(x)       ((x)&0xF0)
#define     APIC_XAPIC(x)            ((x) >= 0x14)
#define APIC_TASKPRI  0x80
#define     APIC_TPRI_MASK           0xFF
#define APIC_ARBPRI   0x90
#define     APIC_ARBPRI_MASK         0xFF
#define APIC_PROCPRI  0xA0
#define APIC_EOI      0xB0
#define     APIC_EIO_ACK             0x0
#define APIC_RRR      0xC0
#define APIC_LDR      0xD0
#define     APIC_LDR_MASK            (0xFF<<24)
#define     GET_APIC_LOGICAL_ID(x)   (((x)>>24)&0xFF)
#define     SET_APIC_LOGICAL_ID(x)   (((x)<<24))
#define     APIC_ALL_CPUS            0xFF
#define APIC_DFR      0xE0
#define     APIC_DFR_CLUSTER         0x0FFFFFFFul
#define     APIC_DFR_FLAT            0xFFFFFFFFul
#define APIC_SPIV     0xF0
#define     APIC_SPIV_FOCUS_DISABLED (1<<9)
#define     APIC_SPIV_APIC_ENABLED   (1<<8)
#define APIC_ISR      0x100
#define APIC_TMR      0x180
#define     APIC_IRR                 0x200
#define     APIC_ESR                 0x280
#define     APIC_ESR_SEND_CS         0x00001
#define     APIC_ESR_RECV_CS         0x00002
#define     APIC_ESR_SEND_ACC        0x00004
#define     APIC_ESR_RECV_ACC        0x00008
#define     APIC_ESR_SENDILL         0x00020
#define     APIC_ESR_RECVILL         0x00040
#define     APIC_ESR_ILLREGA         0x00080
#define APIC_ICR      0x300
#define     APIC_DEST_SELF           0x40000
#define     APIC_DEST_ALLINC         0x80000
#define     APIC_DEST_ALLBUT         0xC0000
#define     APIC_ICR_RR_MASK         0x30000
#define     APIC_ICR_RR_INVALID      0x00000
#define     APIC_ICR_RR_INPROG       0x10000
#define     APIC_ICR_RR_VALID        0x20000
#define     APIC_INT_LEVELTRIG       0x08000
#define     APIC_INT_ASSERT          0x04000
#define     APIC_ICR_BUSY            0x01000
#define     APIC_DEST_LOGICAL        0x00800
#define     APIC_DEST_PHYSICAL       0x00000
#define     APIC_DM_FIXED            0x00000
#define     APIC_DM_LOWEST           0x00100
#define     APIC_DM_SMI              0x00200
#define     APIC_DM_REMRD            0x00300
#define     APIC_DM_NMI              0x00400
#define     APIC_DM_INIT             0x00500
#define     APIC_DM_STARTUP          0x00600
#define     APIC_DM_EXTINT           0x00700
#define     APIC_VECTOR_MASK         0x000FF
#define APIC_ICR2     0x310
#define     GET_APIC_DEST_FIELD(x)   (((x)>>24)&0xFF)
#define     SET_APIC_DEST_FIELD(x)   ((x)<<24)
#define APIC_LVTT     0x320
#define APIC_LVTTHMR  0x330
#define APIC_LVTPC    0x340
#define APIC_LVT0     0x350
#define     APIC_LVT_TIMER_BASE_MASK (0x3<<18)
#define     GET_APIC_TIMER_BASE(x)   (((x)>>18)&0x3)
#define     SET_APIC_TIMER_BASE(x)   (((x)<<18))
#define     APIC_TIMER_BASE_CLKIN    0x0
#define     APIC_TIMER_BASE_TMBASE   0x1
#define     APIC_TIMER_BASE_DIV      0x2
#define     APIC_LVT_TIMER_PERIODIC  (1<<17)
#define     APIC_LVT_MASKED          (1<<16)
#define     APIC_LVT_LEVEL_TRIGGER   (1<<15)
#define     APIC_LVT_REMOTE_IRR      (1<<14)
#define     APIC_INPUT_POLARITY      (1<<13)
#define     APIC_SEND_PENDING        (1<<12)
#define     APIC_MODE_MASK           0x700
#define     GET_APIC_DELIVERY_MODE(x) (((x)>>8)&0x7)
#define     SET_APIC_DELIVERY_MODE(x,y) (((x)&~0x700)|((y)<<8))
#define         APIC_MODE_FIXED          0x0
#define         APIC_MODE_NMI            0x4
#define         APIC_MODE_EXTINT         0x7
#define APIC_LVT1     0x360
#define APIC_LVTERR   0x370
#define APIC_TMICT    0x380
#define APIC_TMCCT    0x390
#define APIC_TDCR     0x3E0
#define     APIC_TDR_DIV_TMBASE      (1<<2)
#define     APIC_TDR_DIV_1           0xB
#define     APIC_TDR_DIV_2           0x0
#define     APIC_TDR_DIV_4           0x1
#define     APIC_TDR_DIV_8           0x2
#define     APIC_TDR_DIV_16          0x3
#define     APIC_TDR_DIV_32          0x8
#define     APIC_TDR_DIV_64          0x9
#define     APIC_TDR_DIV_128         0xA

#endif