forked from qt-creator/qt-creator
Ignoring wifi interfaces as debugging over wifi is not supported
Task-number: QTCREATORBUG-16061 Change-Id: Id7ee6e81246cd5e811a01ff787d73018970ce272 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -65,6 +65,7 @@
|
|||||||
static const bool debugGdbServer = false;
|
static const bool debugGdbServer = false;
|
||||||
static const bool debugAll = false;
|
static const bool debugAll = false;
|
||||||
static const bool verbose = true;
|
static const bool verbose = true;
|
||||||
|
static const bool noWifi = true;
|
||||||
|
|
||||||
// ------- MobileDeviceLib interface --------
|
// ------- MobileDeviceLib interface --------
|
||||||
namespace {
|
namespace {
|
||||||
@@ -93,6 +94,13 @@ struct AMDeviceNotificationCallbackInfo {
|
|||||||
unsigned int _message;
|
unsigned int _message;
|
||||||
AMDeviceNotification *_subscription;
|
AMDeviceNotification *_subscription;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum DeviceInterfaceType {
|
||||||
|
UNKNOWN = 0,
|
||||||
|
WIRED,
|
||||||
|
WIFI
|
||||||
|
};
|
||||||
|
|
||||||
typedef void (MDEV_API *AMDeviceNotificationCallback)(AMDeviceNotificationCallbackInfo *, void *);
|
typedef void (MDEV_API *AMDeviceNotificationCallback)(AMDeviceNotificationCallbackInfo *, void *);
|
||||||
typedef am_res_t (MDEV_API *AMDeviceInstallApplicationCallback)(CFDictionaryRef, void *);
|
typedef am_res_t (MDEV_API *AMDeviceInstallApplicationCallback)(CFDictionaryRef, void *);
|
||||||
typedef mach_error_t (MDEV_API *AMDeviceSecureInstallApplicationCallback)(CFDictionaryRef, int);
|
typedef mach_error_t (MDEV_API *AMDeviceSecureInstallApplicationCallback)(CFDictionaryRef, int);
|
||||||
@@ -109,6 +117,7 @@ typedef am_res_t (MDEV_API *AMDeviceNotificationSubscribePtr)(AMDeviceNotificati
|
|||||||
unsigned int, unsigned int, void *,
|
unsigned int, unsigned int, void *,
|
||||||
const AMDeviceNotification **);
|
const AMDeviceNotification **);
|
||||||
typedef am_res_t (MDEV_API *AMDeviceNotificationUnsubscribePtr)(void *);
|
typedef am_res_t (MDEV_API *AMDeviceNotificationUnsubscribePtr)(void *);
|
||||||
|
typedef int (MDEV_API* AMDeviceGetInterfaceTypePtr)(AMDeviceRef device);
|
||||||
typedef CFPropertyListRef (MDEV_API *AMDeviceCopyValuePtr)(AMDeviceRef,CFStringRef,CFStringRef);
|
typedef CFPropertyListRef (MDEV_API *AMDeviceCopyValuePtr)(AMDeviceRef,CFStringRef,CFStringRef);
|
||||||
typedef unsigned int (MDEV_API *AMDeviceGetConnectionIDPtr)(AMDeviceRef);
|
typedef unsigned int (MDEV_API *AMDeviceGetConnectionIDPtr)(AMDeviceRef);
|
||||||
typedef CFStringRef (MDEV_API *AMDeviceCopyDeviceIdentifierPtr)(AMDeviceRef);
|
typedef CFStringRef (MDEV_API *AMDeviceCopyDeviceIdentifierPtr)(AMDeviceRef);
|
||||||
@@ -367,6 +376,7 @@ public :
|
|||||||
unsigned int v1, unsigned int v2, void *v3,
|
unsigned int v1, unsigned int v2, void *v3,
|
||||||
const AMDeviceNotification **handle);
|
const AMDeviceNotification **handle);
|
||||||
am_res_t deviceNotificationUnsubscribe(void *handle);
|
am_res_t deviceNotificationUnsubscribe(void *handle);
|
||||||
|
int deviceGetInterfaceType(AMDeviceRef device);
|
||||||
CFPropertyListRef deviceCopyValue(AMDeviceRef,CFStringRef,CFStringRef);
|
CFPropertyListRef deviceCopyValue(AMDeviceRef,CFStringRef,CFStringRef);
|
||||||
unsigned int deviceGetConnectionID(AMDeviceRef);
|
unsigned int deviceGetConnectionID(AMDeviceRef);
|
||||||
CFStringRef deviceCopyDeviceIdentifier(AMDeviceRef);
|
CFStringRef deviceCopyDeviceIdentifier(AMDeviceRef);
|
||||||
@@ -403,6 +413,7 @@ private:
|
|||||||
AMDSetLogLevelPtr m_AMDSetLogLevel;
|
AMDSetLogLevelPtr m_AMDSetLogLevel;
|
||||||
AMDeviceNotificationSubscribePtr m_AMDeviceNotificationSubscribe;
|
AMDeviceNotificationSubscribePtr m_AMDeviceNotificationSubscribe;
|
||||||
AMDeviceNotificationUnsubscribePtr m_AMDeviceNotificationUnsubscribe;
|
AMDeviceNotificationUnsubscribePtr m_AMDeviceNotificationUnsubscribe;
|
||||||
|
AMDeviceGetInterfaceTypePtr m_AMDeviceGetInterfaceType;
|
||||||
AMDeviceCopyValuePtr m_AMDeviceCopyValue;
|
AMDeviceCopyValuePtr m_AMDeviceCopyValue;
|
||||||
AMDeviceGetConnectionIDPtr m_AMDeviceGetConnectionID;
|
AMDeviceGetConnectionIDPtr m_AMDeviceGetConnectionID;
|
||||||
AMDeviceCopyDeviceIdentifierPtr m_AMDeviceCopyDeviceIdentifier;
|
AMDeviceCopyDeviceIdentifierPtr m_AMDeviceCopyDeviceIdentifier;
|
||||||
@@ -729,6 +740,21 @@ void IosDeviceManagerPrivate::addDevice(AMDeviceRef device)
|
|||||||
QString devId = QString::fromCFString(s);
|
QString devId = QString::fromCFString(s);
|
||||||
if (s) CFRelease(s);
|
if (s) CFRelease(s);
|
||||||
CFRetain(device);
|
CFRetain(device);
|
||||||
|
|
||||||
|
DeviceInterfaceType interfaceType = static_cast<DeviceInterfaceType>(lib()->deviceGetInterfaceType(device));
|
||||||
|
if (interfaceType == DeviceInterfaceType::UNKNOWN) {
|
||||||
|
if (debugAll)
|
||||||
|
qDebug() << "Skipping device." << devId << "Interface type: Unknown.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip the wifi connections as debugging over wifi is not supported.
|
||||||
|
if (noWifi && interfaceType == DeviceInterfaceType::WIFI) {
|
||||||
|
if (debugAll)
|
||||||
|
qDebug() << "Skipping device." << devId << "Interface type: WIFI. Debugging over WIFI is not supported.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (debugAll)
|
if (debugAll)
|
||||||
qDebug() << "addDevice " << devId;
|
qDebug() << "addDevice " << devId;
|
||||||
if (m_devices.contains(devId)) {
|
if (m_devices.contains(devId)) {
|
||||||
@@ -1847,6 +1873,9 @@ bool MobileDeviceLib::load()
|
|||||||
m_AMDeviceNotificationUnsubscribe = reinterpret_cast<AMDeviceNotificationUnsubscribePtr>(lib.resolve("AMDeviceNotificationUnsubscribe"));
|
m_AMDeviceNotificationUnsubscribe = reinterpret_cast<AMDeviceNotificationUnsubscribePtr>(lib.resolve("AMDeviceNotificationUnsubscribe"));
|
||||||
if (m_AMDeviceNotificationUnsubscribe == 0)
|
if (m_AMDeviceNotificationUnsubscribe == 0)
|
||||||
addError("MobileDeviceLib does not define AMDeviceNotificationUnsubscribe");
|
addError("MobileDeviceLib does not define AMDeviceNotificationUnsubscribe");
|
||||||
|
m_AMDeviceGetInterfaceType = reinterpret_cast<AMDeviceGetInterfaceTypePtr>(lib.resolve("AMDeviceGetInterfaceType"));
|
||||||
|
if (m_AMDeviceGetInterfaceType == 0)
|
||||||
|
addError("MobileDeviceLib does not define AMDeviceGetInterfaceType");
|
||||||
m_AMDeviceCopyValue = reinterpret_cast<AMDeviceCopyValuePtr>(lib.resolve("AMDeviceCopyValue"));
|
m_AMDeviceCopyValue = reinterpret_cast<AMDeviceCopyValuePtr>(lib.resolve("AMDeviceCopyValue"));
|
||||||
if (m_AMDSetLogLevel == 0)
|
if (m_AMDSetLogLevel == 0)
|
||||||
addError("MobileDeviceLib does not define AMDSetLogLevel");
|
addError("MobileDeviceLib does not define AMDSetLogLevel");
|
||||||
@@ -1937,6 +1966,13 @@ am_res_t MobileDeviceLib::deviceNotificationUnsubscribe(void *handle)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int MobileDeviceLib::deviceGetInterfaceType(AMDeviceRef device)
|
||||||
|
{
|
||||||
|
if (m_AMDeviceGetInterfaceType)
|
||||||
|
return m_AMDeviceGetInterfaceType(device);
|
||||||
|
return DeviceInterfaceType::UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
CFPropertyListRef MobileDeviceLib::deviceCopyValue(AMDeviceRef device,CFStringRef group,CFStringRef key)
|
CFPropertyListRef MobileDeviceLib::deviceCopyValue(AMDeviceRef device,CFStringRef group,CFStringRef key)
|
||||||
{
|
{
|
||||||
if (m_AMDeviceCopyValue)
|
if (m_AMDeviceCopyValue)
|
||||||
|
Reference in New Issue
Block a user