diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2009-04-23 14:39:31 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2009-04-23 14:39:31 +0100 |
commit | 8f9f02d483b87c787d089cf9329f5f1b81d3a77e (patch) | |
tree | ee1c0403092e9dd296c43706a0c7c2d14d5a5c19 /java | |
parent | 713283f4a67b3a1960ca96ce6608d046fc202d2d (diff) | |
download | libguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.tar.gz libguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.tar.xz libguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.zip |
Generated code for debug command.
Diffstat (limited to 'java')
-rw-r--r-- | java/com/redhat/et/libguestfs/GuestFS.java | 23 | ||||
-rw-r--r-- | java/com_redhat_et_libguestfs_GuestFS.c | 36 |
2 files changed, 59 insertions, 0 deletions
diff --git a/java/com/redhat/et/libguestfs/GuestFS.java b/java/com/redhat/et/libguestfs/GuestFS.java index bb6c8d70..f1cd508b 100644 --- a/java/com/redhat/et/libguestfs/GuestFS.java +++ b/java/com/redhat/et/libguestfs/GuestFS.java @@ -2186,4 +2186,27 @@ public class GuestFS { private native void _mount_vfs (long g, String options, String vfstype, String device, String mountpoint) throws LibGuestFSException; + /** + * debugging and internals + * + * The "g.debug" command exposes some internals of + * "guestfsd" (the guestfs daemon) that runs inside the + * qemu subprocess. + * + * There is no comprehensive help for this command. You + * have to look at the file "daemon/debug.c" in the + * libguestfs source to find out what you can do. + * + * @throws LibGuestFSException + */ + public String debug (String subcmd, String[] extraargs) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("debug: handle is closed"); + return _debug (g, subcmd, extraargs); + } + private native String _debug (long g, String subcmd, String[] extraargs) + throws LibGuestFSException; + } diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 81435d90..4b96c262 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -2230,3 +2230,39 @@ Java_com_redhat_et_libguestfs_GuestFS__1mount_1vfs } } +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1debug + (JNIEnv *env, jobject obj, jlong jg, jstring jsubcmd, jobjectArray jextraargs) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *subcmd; + int extraargs_len; + const char **extraargs; + int i; + + subcmd = (*env)->GetStringUTFChars (env, jsubcmd, NULL); + extraargs_len = (*env)->GetArrayLength (env, jextraargs); + extraargs = malloc (sizeof (char *) * (extraargs_len+1)); + for (i = 0; i < extraargs_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i); + extraargs[i] = (*env)->GetStringUTFChars (env, o, NULL); + } + extraargs[extraargs_len] = NULL; + r = guestfs_debug (g, subcmd, extraargs); + (*env)->ReleaseStringUTFChars (env, jsubcmd, subcmd); + for (i = 0; i < extraargs_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i); + (*env)->ReleaseStringUTFChars (env, o, extraargs[i]); + } + free (extraargs); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} + |