来分析一个UVC的摄像头的枚举信息
使用到工具USBlyzer导出数据,但是会发现一些还有部分解析未完全。我们将借助UVCView.x86(https://files.cnblogs.com/files/libra13179/77772349UVCView.x86.rar)来进一步来分析。(懒人专用)
| Connection Status | Device connected |
| Current Configuration | 1 |
| Speed | High (480 Mbit/s) |
| Device Address | 4 |
| Number Of Open Pipes | 1 |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 12h | |
| 1 | bDescriptorType | 1 | 01h | Device |
| 2 | bcdUSB | 2 | 0200h | USB Spec 2.0 |
| 4 | bDeviceClass | 1 | EFh | Miscellaneous |
| 5 | bDeviceSubClass | 1 | 02h | Common Class |
| 6 | bDeviceProtocol | 1 | 01h | Interface Association Descriptor |
| 7 | bMaxPacketSize0 | 1 | 40h | 64 bytes |
| 8 | idVendor | 2 | 05E3h | Genesys Logic, Inc. |
| 10 | idProduct | 2 | 0510h | |
| 12 | bcdDevice | 2 | 0319h | 3.19 |
| 14 | iManufacturer | 1 | 02h | |
| 15 | iProduct | 1 | 03h | "USB2.0 UVC PC Camera" |
| 16 | iSerialNumber | 1 | 00h | |
| 17 | bNumConfigurations | 1 | 01h |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 09h | |
| 1 | bDescriptorType | 1 | 02h | Configuration |
| 2 | wTotalLength | 2 | 01A9h | |
| 4 | bNumInterfaces | 1 | 02h | |
| 5 | bConfigurationValue | 1 | 01h | |
| 6 | iConfiguration | 1 | 00h | |
| 7 | bmAttributes | 1 | 80h | Bus Powered |
| 4..0: Reserved | ...00000 | |||
| 5: Remote Wakeup | ..0..... | No | ||
| 6: Self Powered | .0...... | No, Bus Powered | ||
| 7: Reserved (set to one) (bus-powered for 1.0) |
1....... | |||
| 8 | bMaxPower | 1 | 64h | 200 mA |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 08h | |
| 1 | bDescriptorType | 1 | 0Bh | Interface Association |
| 2 | bFirstInterface | 1 | 00h | |
| 3 | bInterfaceCount | 1 | 02h | |
| 4 | bFunctionClass | 1 | 0Eh | Video |
| 5 | bFunctionSubClass | 1 | 03h | Video Interface Collection |
| 6 | bFunctionProtocol | 1 | 00h | |
| 7 | iFunction | 1 | 01h |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 09h | |
| 1 | bDescriptorType | 1 | 04h | Interface |
| 2 | bInterfaceNumber | 1 | 00h | |
| 3 | bAlternateSetting | 1 | 00h | |
| 4 | bNumEndpoints | 1 | 01h | |
| 5 | bInterfaceClass | 1 | 0Eh | Video |
| 6 | bInterfaceSubClass | 1 | 01h | Video Control |
| 7 | bInterfaceProtocol | 1 | 00h | |
| 8 | iInterface | 1 | 01h |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 0Dh | |
| 1 | bDescriptorType | 1 | 24h | Video Control Interface Header |
| 2 | 11 | 01 00 01 69 00 00 87 93 03 01 01 |
===>Class-Specific Video Control Interface Header Descriptor<===
bLength: 0x0D
bDescriptorType: 0x24
bDescriptorSubtype: 0x01
bcdVDC: 0x0100
wTotalLength: 0x0069 -> Validated
dwClockFrequency: 0x03938700 = () Hz
bInCollection: 0x01
baInterfaceNr[]: 0x01
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 09h | |
| 1 | bDescriptorType | 1 | 24h | Video Control Output Terminal |
| 2 | 7 | 03 04 01 01 00 02 00 |
===>Video Control Output Terminal Descriptor<===
bLength: 0x09
bDescriptorType: 0x24
bDescriptorSubtype: 0x03
bTerminalID: 0x04
wTerminalType: 0x0101 = (TT_STREAMING)
bAssocTerminal: 0x00
bSourceID: 0x02
iTerminal: 0x00
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Bh | |
| 1 | bDescriptorType | 1 | 24h | Video Control Extension Unit |
| 2 | 25 | 06 02 0B 36 5D 5E 5F E4 81 45 9B 0B 37 46 69 BA 05 D4 10 01 05 02 FF 00 00 |
===>Video Control Extension Unit Descriptor<===
bLength: 0x1B
bDescriptorType: 0x24
bDescriptorSubtype: 0x06
bUnitID: 0x02
guidExtensionCode: {5E5D360B-E45F--9B0B-374669BA05D4}
bNumControls: 0x10
bNrInPins: 0x01
===>List of Connected Units and Terminal ID's
baSourceID[]: 0x05
bControlSize: 0x02
bmControls : 0xFF 0x00
D00 = yes - Vendor-Specific (Optional)
D01 = yes - Vendor-Specific (Optional)
D02 = yes - Vendor-Specific (Optional)
D03 = yes - Vendor-Specific (Optional)
D04 = yes - Vendor-Specific (Optional)
D05 = yes - Vendor-Specific (Optional)
D06 = yes - Vendor-Specific (Optional)
D07 = yes - Vendor-Specific (Optional)
D08 = no - Vendor-Specific (Optional)
D09 = no - Vendor-Specific (Optional)
D10 = no - Vendor-Specific (Optional)
D11 = no - Vendor-Specific (Optional)
D12 = no - Vendor-Specific (Optional)
D13 = no - Vendor-Specific (Optional)
D14 = no - Vendor-Specific (Optional)
D15 = no - Vendor-Specific (Optional)
iExtension: 0x00
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Bh | |
| 1 | bDescriptorType | 1 | 24h | Video Control Extension Unit |
| 2 | 25 | 06 05 03 DF DA EC E3 8F 27 4D 89 3B A1 8D 25 AE EE 09 10 01 03 02 FF 03 00 |
===>Video Control Extension Unit Descriptor<===
bLength: 0x1B
bDescriptorType: 0x24
bDescriptorSubtype: 0x06
bUnitID: 0x05
guidExtensionCode: {ECDADF03-8FE3-4D27-893B-A18D25AEEE09}
bNumControls: 0x10
bNrInPins: 0x01
===>List of Connected Units and Terminal ID's
baSourceID[]: 0x03
bControlSize: 0x02
bmControls : 0xFF 0x03
D00 = yes - Vendor-Specific (Optional)
D01 = yes - Vendor-Specific (Optional)
D02 = yes - Vendor-Specific (Optional)
D03 = yes - Vendor-Specific (Optional)
D04 = yes - Vendor-Specific (Optional)
D05 = yes - Vendor-Specific (Optional)
D06 = yes - Vendor-Specific (Optional)
D07 = yes - Vendor-Specific (Optional)
D08 = yes - Vendor-Specific (Optional)
D09 = yes - Vendor-Specific (Optional)
D10 = no - Vendor-Specific (Optional)
D11 = no - Vendor-Specific (Optional)
D12 = no - Vendor-Specific (Optional)
D13 = no - Vendor-Specific (Optional)
D14 = no - Vendor-Specific (Optional)
D15 = no - Vendor-Specific (Optional)
iExtension: 0x00
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 12h | |
| 1 | bDescriptorType | 1 | 24h | Video Control Input Terminal |
| 2 | 16 | 02 01 01 02 00 00 00 00 00 00 00 00 03 00 00 00 |
===>Video Control Input Terminal Descriptor<===
bLength: 0x12
bDescriptorType: 0x24
bDescriptorSubtype: 0x02
bTerminalID: 0x01
wTerminalType: 0x0201 = (ITT_CAMERA)
bAssocTerminal: 0x00
iTerminal: 0x00
===>Camera Input Terminal Data
wObjectiveFocalLengthMin: 0x0000
wObjectiveFocalLengthMax: 0x0000
wOcularFocalLength: 0x0000
bControlSize: 0x03
bmControls : 0x00 0x00 0x00
D00 = no - Scanning Mode
D01 = no - Auto-Exposure Mode
D02 = no - Auto-Exposure Priority
D03 = no - Exposure Time (Absolute)
D04 = no - Exposure Time (Relative)
D05 = no - Focus (Absolute)
D06 = no - Focus (Relative)
D07 = no - Iris (Absolute)
D08 = no - Iris (Relative)
D09 = no - Zoom (Absolute)
D10 = no - Zoom (Relative)
D11 = no - Pan (Absolute)
D12 = no - Pan (Relative)
D13 = no - Roll (Absolute)
D14 = no - Roll (Relative)
D15 = no - Tilt (Absolute)
D16 = no - Tilt (Relative)
D17 = no - Focus Auto
D18 = no - Reserved
D19 = no - Reserved
D20 = no - Reserved
D21 = no - Reserved
D22 = no - Reserved
D23 = no - Reserved
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 0Bh | |
| 1 | bDescriptorType | 1 | 24h | Video Control Processing Unit |
| 2 | 9 | 05 03 01 00 00 02 7F 17 00 |
===>Video Control Processing Unit Descriptor<===
bLength: 0x0B
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bUnitID: 0x03
bSourceID: 0x01
wMaxMultiplier: 0x0000
bControlSize: 0x02
bmControls : 0x7F 0x17
D00 = yes - Brightness
D01 = yes - Contrast
D02 = yes - Hue
D03 = yes - Saturation
D04 = yes - Sharpness
D05 = yes - Gamma
D06 = yes - White Balance Temperature
D07 = no - White Balance Component
D08 = yes - Backlight Compensation
D09 = yes - Gain
D10 = yes - Power Line Frequency
D11 = no - Hue, Auto
D12 = yes - White Balance Temperature, Auto
D13 = no - White Balance Component, Auto
D14 = no - Digital Multiplier
D15 = no - Digital Multiplier Limit
iProcessing: 0x00
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 07h | |
| 1 | bDescriptorType | 1 | 05h | Endpoint |
| 2 | bEndpointAddress | 1 | 83h | 3 In |
| 3 | bmAttributes | 1 | 03h | Interrupt |
| 1..0: Transfer Type | ......11 | Interrupt | ||
| 7..2: Reserved | 000000.. | |||
| 4 | wMaxPacketSize | 2 | 0017h | 23 bytes |
| 6 | bInterval | 1 | 06h | 4 ms |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 05h | |
| 1 | bDescriptorType | 1 | 25h | Video Control Interrupt Endpoint |
| 2 | 3 | 03 17 00 |
===>Class-specific VC Interrupt Endpoint Descriptor<===
bLength: 0x05
bDescriptorType: 0x25
bDescriptorSubType: 0x03
wMaxTransferSize: 0x0017 = () Bytes
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 09h | |
| 1 | bDescriptorType | 1 | 04h | Interface |
| 2 | bInterfaceNumber | 1 | 01h | |
| 3 | bAlternateSetting | 1 | 00h | |
| 4 | bNumEndpoints | 1 | 00h | |
| 5 | bInterfaceClass | 1 | 0Eh | Video |
| 6 | bInterfaceSubClass | 1 | 02h | Video Streaming |
| 7 | bInterfaceProtocol | 1 | 00h | |
| 8 | iInterface | 1 | 00h |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 0Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Interface Input Header |
| 2 | 12 | 01 01 01 01 81 00 04 02 01 01 01 00 |
===>Video Class-Specific VS Video Input Header Descriptor<===
bLength: 0x0E
bDescriptorType: 0x24
bDescriptorSubtype: 0x01
bNumFormats: 0x01
wTotalLength: 0x0101 -> Validated
bEndpointAddress: 0x81 -> Direction: IN - EndpointID:
bmInfo: 0x00 -> Dynamic Format Change not Supported
bTerminalLink: 0x04
bStillCaptureMethod: 0x02 -> Still Capture Method
bTriggerSupport: 0x01 -> Hardware Triggering Support
bTriggerUsage: 0x01 -> Host will notify client application of button event
bControlSize: 0x01
Video Payload Format 0x00
D00 = no - Key Frame Rate
D01 = no - P Frame Rate
D02 = no - Compression Quality
D03 = no - Compression Window Size
D04 = no - Generate Key Frame
D05 = no - Update Frame Segment
D06 = no - Reserved
D07 = no - Reserved
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Bh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Format |
| 2 | 25 | 04 01 06 59 55 59 32 00 00 10 00 80 00 00 AA 00 38 9B 71 10 01 00 00 00 00 |
===>Video Streaming Uncompressed Format Type Descriptor<===
bLength: 0x1B
bDescriptorType: 0x24
bDescriptorSubtype: 0x04
bFormatIndex: 0x01
bNumFrameDescriptors: 0x06
guidFormat: {----00AA00389B71} = YUY2 Format
bBitsPerPixel: 0x10
bDefaultFrameIndex: 0x01
bAspectRatioX: 0x00
bAspectRatioY: 0x00
bmInterlaceFlags: 0x00
D0 = 0x00 Interlaced stream or variable: No
D1 = 0x00 Fields per frame: fields
D2 = 0x00 Field first: No
D3 = 0x00 Reserved
D4.. = 0x00 Field patterns -> Field only
D6.. = 0x00 Display Mode -> Bob only
bCopyProtect: 0x00 -> Duplication Unrestricted
补充一下关于Layout of a GUID Data Structure

Therefore, for a GUID defined as {32595559-0000-0010-8000-00AA00389B71}, as described
in the table above, the little-endian byte-stream representation would be:
0x59, 0x55, 0x59, 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 01 00 80 02 E0 01 00 60 EA 00 00 60 EA 00 00 60 09 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x01
bmCapabilities: 0x00
wWidth: 0x0280
wHeight: 0x01E0
dwMinBitRate: 0x00EA6000
dwMaxBitRate: 0x00EA6000
dwMaxVideoFrameBufferSize: 0x00096000
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 02 00 A0 00 78 00 00 A6 0E 00 00 A6 0E 00 00 96 00 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x02
bmCapabilities: 0x00
wWidth: 0x00A0
wHeight: 0x0078
dwMinBitRate: 0x000EA600
dwMaxBitRate: 0x000EA600
dwMaxVideoFrameBufferSize: 0x00009600
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 03 00 B0 00 90 00 00 56 13 00 00 56 13 00 00 C6 00 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x03
bmCapabilities: 0x00
wWidth: 0x00B0
wHeight: 0x0090
dwMinBitRate: 0x00135600
dwMaxBitRate: 0x00135600
dwMaxVideoFrameBufferSize: 0x0000C600
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 04 00 40 01 F0 00 00 98 3A 00 00 98 3A 00 00 58 02 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x04
bmCapabilities: 0x00
wWidth: 0x0140
wHeight: 0x00F0
dwMinBitRate: 0x003A9800
dwMaxBitRate: 0x003A9800
dwMaxVideoFrameBufferSize: 0x00025800
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 05 00 60 01 20 01 00 58 4D 00 00 58 4D 00 00 18 03 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x05
bmCapabilities: 0x00
wWidth: 0x0160
wHeight: 0x0120
dwMinBitRate: 0x004D5800
dwMaxBitRate: 0x004D5800
dwMaxVideoFrameBufferSize: 0x00031800
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Uncompressed Video Frame |
| 2 | 28 | 05 06 00 80 02 E0 01 00 60 EA 00 00 60 EA 00 00 60 09 00 80 1A 06 00 01 80 1A 06 00 |
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x06
bmCapabilities: 0x00
wWidth: 0x0280
wHeight: 0x01E0
dwMinBitRate: 0x00EA6000
dwMaxBitRate: 0x00EA6000
dwMaxVideoFrameBufferSize: 0x00096000
dwDefaultFrameInterval: 0x00061A80
bFrameIntervalType: 0x01
===>Additional Discrete Frame Type Data
dwFrameInterval[]: 0x00061A80
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 1Eh | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Still Image Frame |
| 2 | 28 | 03 00 06 80 02 E0 01 A0 00 78 00 B0 00 90 00 40 01 F0 00 60 01 20 01 80 02 E0 01 00 |
===>Still Image Frame Type Descriptor<===
bLength: 0x1E
bDescriptorType: 0x24
bDescriptorSubtype: 0x03
bEndpointAddress: 0x00
bNumImageSizePatterns: 0x06
wWidth[]: 0x0280
wHeight[]: 0x01E0
wWidth[]: 0x00A0
wHeight[]: 0x0078
wWidth[]: 0x00B0
wHeight[]: 0x0090
wWidth[]: 0x0140
wHeight[]: 0x00F0
wWidth[]: 0x0160
wHeight[]: 0x0120
wWidth[]: 0x0280
wHeight[]: 0x01E0
bNumCompressionPattern: 0x00
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 06h | |
| 1 | bDescriptorType | 1 | 24h | Video Streaming Color Matching |
| 2 | 4 | 0D 01 01 04 |
===>Color Matching Descriptor<===
bLength: 0x06
bDescriptorType: 0x24
bDescriptorSubtype: 0x0D
bColorPrimaries: 0x01
bTransferCharacteristics: 0x01
bMatrixCoefficients: 0x04
Interface Descriptor 1/1 Video, 1 Endpoint
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 09h | |
| 1 | bDescriptorType | 1 | 04h | Interface |
| 2 | bInterfaceNumber | 1 | 01h | |
| 3 | bAlternateSetting | 1 | 01h | |
| 4 | bNumEndpoints | 1 | 01h | |
| 5 | bInterfaceClass | 1 | 0Eh | Video |
| 6 | bInterfaceSubClass | 1 | 02h | Video Streaming |
| 7 | bInterfaceProtocol | 1 | 00h | |
| 8 | iInterface | 1 | 00h |
| Offset | Field | Size | Value | Description |
|---|---|---|---|---|
| 0 | bLength | 1 | 07h | |
| 1 | bDescriptorType | 1 | 05h | Endpoint |
| 2 | bEndpointAddress | 1 | 81h | 1 In |
| 3 | bmAttributes | 1 | 05h | Isochronous, Asynchronous, Data |
| 1..0: Transfer Type | ......01 | Isochronous | ||
| 3..2: Sync Type | ....01.. | Asynchronous | ||
| 5..4: Usage Type | ..00.... | Data | ||
| 7..6: Reserved | 00...... | |||
| 4 | wMaxPacketSize | 2 | 1400h | 1024 bytes, 2 additional transactions (3 per microframe) |
| 6 | bInterval | 1 | 01h | 125 us |
来分析一个UVC的摄像头的枚举信息的更多相关文章
- 如何分析一个QT类
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 我们以QLineEdit这个类为例来看看如何学习分析一个QT类. 1.Public Types: 这是一个在这 ...
- 分析一个socket通信: server/client
分析一个socket通信: server/client1 server 1. 创建一个server_socket文件,并绑定端口,然后监听端口 (socket, bind, listen) 2. 查询 ...
- 分析一个MySQL并发事务示例
小结: 1. https://mp.weixin.qq.com/s/hdDl95a6ayVtCoEc3RiLwQ 分析一个MySQL并发事务示例 性能与架构 1月12日 MySQL实战45讲 从原 ...
- 从零开始的程序逆向之路基础篇 第二章——用OllyDbg(OD)分析一个简单的软件
作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭A ...
- 在Linux下,如何分析一个程序达到性能瓶颈的原因
0.在Linux下,如何分析一个程序达到性能瓶颈的原因,请分别从CPU.内存.IO.网络的角度判断是谁导致的瓶颈?注意现在的机器CPU是多核 1.用sar -n DEV 1 10 2.用iotop命令 ...
- 实验作业:使gdb跟踪分析一个系统调用内核函数
实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...
- 如何分析一个已有的Delphi项目源代码
分析一个已有的Delphi项目,应该从以下入手(按先后顺序):1. 编译条件,包括自定义的Condition以及inc文件里的标识2. 主项目文件dpr,因为窗体的windows消息循环只是程序的一部 ...
- 基于Linux C的socketEthereal程序和Package分析 (一个)
执行测试平台:CentOS 6.5发行版,内核版本号3.11 1. Linux抓包源程序 在OSI七层模型中.网卡工作在物理层和数据链路层的MAC子层. 进行网络通信时.源主机通过socket( ...
- [Android] 分析一个CalledFromWrongThreadException崩溃
1 问题描述 问题本身比较清晰简单,但推敲的过程中发现了不少有意思的东西. 在C++ SDK回调JNI至Java Observer函数中,直接操作了UI界面textView.setText(msg), ...
随机推荐
- js中获取事件对象的方法小结
原文地址:http://jingyan.baidu.com/article/d8072ac4594d6cec95cefdac.html 事件对象 的获取很简单,很久前我们就知道IE中事件对象是作为全局 ...
- 函数的进阶(动态参数,命名空间和作用域,函数的嵌套,gloabal和nonlocal关键字)
1. 函数参数--动态传参 昨天已经解过了传参, 如果需要给一个函数传参,而参数又是不确定的. 或者我们给一个函数传很多参数, 我的形参就要写很多, 写起来就很麻烦, 这时我们可以考虑使用动态参数.形 ...
- 解决DevExpress10.2.4版本在VS2012工具箱控件不显示的问题
DevExpress10.2.4支持vs2010,安装vs2010或找一台装有vs2010的机器安装DevExpress10.2.4 执行DevExpress10.2.4的工具ToolboxCreat ...
- Mysql 之多实例 安装以及配置
MySQL多实例 1.什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的soc ...
- HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)
原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...
- django模板(template)
模板层(template) 你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. 1 2 3 4 def current_datetime ...
- tp3.2sql改变时间格式
tp3.2sql改变时间格式2018-05-10取05-10 $listIn=D('api_article as a')->field('date_format( fabutime,\'%m-% ...
- Java - 14 Java 日期时间
java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...
- python学习过程中的踩坑记录<若干,随时更新>
问题1:python中print的连串输出与java不一样? 输入print(code +"+++"); --在代码中写入,界面未报错,但是告诉你不行 会报错,如图: 解决办法: ...
- Redis 简介(官方翻译)
Redis是一个开源(基于BSD开源协议).内存型结构数据存储,可当做数据库.缓存.消息代理.它支持的数据结构有字符串.哈希表.列表.集合.可随机查询的有序集合.位图.基数统计.用于半径查询的地理位置 ...