Bi-monthly release with minor bug fixes and improvements
(gdb) bt
#0 __GI_strcmp (p1=<optimized out>, p2=<optimized out>) at strcmp.c:38
#1 0x0001454e in gphoto_read_widget ()
#2 0x000159c8 in gphoto_get_widget_info ()
#3 0x00012b24 in GPhotoCCD::ShowExtendedOptions() ()
#4 0x00010582 in GPhotoCCD::updateProperties() ()
#5 0x4005b2e2 in INDI::DefaultDevice::ISNewSwitch(char const*, char const*, ISState*, char**, int) () from /usr/lib/libindidriver.so.0
#6 0x40060766 in INDI::CCD::ISNewSwitch(char const*, char const*, ISState*, char**, int) () from /usr/lib/libindidriver.so.0
#7 0x00010f2e in GPhotoCCD::ISNewSwitch(char const*, char const*, ISState*, char**, int) ()
#8 0x0000fc12 in ISNewSwitch ()
#9 0x40053240 in dispatch () from /usr/lib/libindidriver.so.0
#10 0x40052cd2 in clientMsgCB () from /usr/lib/libindidriver.so.0
#11 0x40056514 in callCallback () from /usr/lib/libindidriver.so.0
#12 0x40056828 in oneLoop () from /usr/lib/libindidriver.so.0
#13 0x40055d80 in eventLoop () from /usr/lib/libindidriver.so.0
#14 0x40055cb4 in main () from /usr/lib/libindidriver.so.0
#15 0x4043b632 in __libc_start_main (main=0xf1a8 <main>, argc=1,
argv=0xbefff8a4, init=<optimized out>, fini=0x17019 <__libc_csu_fini+1>,
rtld_fini=0x4000b4a9 <_dl_fini>, stack_end=0xbefff8a4) at libc-start.c:287
#16 0x0000f9b8 in _start ()
(gdb)
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
ldd /usr/bin/indi_gphoto_ccd
linux-vdso.so.1 => (0x00007fff26d7e000)
libindidriver.so.0 => /usr/lib/libindidriver.so.0 (0x00007f4744fb7000)
libcfitsio.so.3 => /usr/lib/x86_64-linux-gnu/libcfitsio.so.3 (0x00007f4744bff000)
libgphoto2.so.6 => /usr/lib/x86_64-linux-gnu/libgphoto2.so.6 (0x00007f474497e000)
libgphoto2_port.so.10 => /usr/lib/x86_64-linux-gnu/libgphoto2_port.so.10 (0x00007f4744774000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4744556000)
sudo apt-get remove libindi0
Please Log in or Create an account to join the conversation.
astro@tinyastro:~$ ldd /usr/bin/indi_gphoto_ccd
libindidriver.so.0 => /usr/lib/libindidriver.so.0 (0x4026c000)
libcfitsio.so.3 => /usr/lib/arm-linux-gnueabihf/libcfitsio.so.3 (0x402dc000)
libgphoto2.so.6 => /usr/lib/arm-linux-gnueabihf/libgphoto2.so.6 (0x400e3000)
libgphoto2_port.so.10 => /usr/lib/arm-linux-gnueabihf/libgphoto2_port.so.10 (0x400cb000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x4015f000)
libjpeg.so.8 => /usr/lib/arm-linux-gnueabihf/libjpeg.so.8 (0x4017a000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x401b6000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x4042c000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x40006000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x401cf000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x404db000)
libusb-1.0.so.0 => /lib/arm-linux-gnueabihf/libusb-1.0.so.0 (0x401f0000)
libnova-0.14.so.0 => /usr/lib/arm-linux-gnueabihf/libnova-0.14.so.0 (0x405c2000)
/lib/ld-linux-armhf.so.3 (0x40094000)
libltdl.so.7 => /usr/lib/arm-linux-gnueabihf/libltdl.so.7 (0x400b5000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x40073000)
libexif.so.12 => /usr/lib/arm-linux-gnueabihf/libexif.so.12 (0x40208000)
libudev.so.1 => /lib/arm-linux-gnueabihf/libudev.so.1 (0x4023e000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x4007e000)
astro@tinyastro:~$
Please Log in or Create an account to join the conversation.
(gdb) bt
#0 __strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:296
#1 0x000000000040cf56 in GPhotoCCD::create_switch (this=0xbdf2c0,
basestr=0xc30804 "whitebiaspresetno", options=0xc89c60, max_opts=1,
setidx=0) at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:821
#2 0x000000000040d2d6 in GPhotoCCD::AddWidget (this=0xbdf2c0, widget=0xc6f410)
at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:890
#3 0x000000000040d7d2 in GPhotoCCD::ShowExtendedOptions (this=0xbdf2c0)
at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:938
#4 0x000000000040a2f3 in GPhotoCCD::updateProperties (this=0xbdf2c0)
at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:275
#5 0x00007ff44b86655d in INDI::DefaultDevice::ISNewSwitch(char const*, char const*, ISState*, char**, int) ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#6 0x00007ff44b86cb08 in INDI::CCD::ISNewSwitch(char const*, char const*, ISState*, char**, int) () from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#7 0x000000000040b0c7 in GPhotoCCD::ISNewSwitch (this=0xbdf2c0,
dev=0xbea060 "GPhoto CCD", name=0xbe9f60 "CONNECTION", states=0xbea210,
names=0xbea230, n=1)
at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:459
#8 0x0000000000409775 in ISNewSwitch (dev=0xbea060 "GPhoto CCD",
name=0xbe9f60 "CONNECTION", states=0xbea210, names=0xbea230, num=1)
at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:94
---Type <return> to continue, or q <return> to quit---
#9 0x00007ff44b85e829 in dispatch ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#10 0x00007ff44b85ec6b in clientMsgCB ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#11 0x00007ff44b861cbb in ?? ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#12 0x00007ff44b861e1d in eventLoop ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#13 0x00007ff44b8587e6 in main ()
from /usr/lib/x86_64-linux-gnu/libindidriver.so.0
#14 0x00007ff449fcfec5 in __libc_start_main (main=0x408a20 <main@plt>, argc=1,
argv=0x7fff27aaa618, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fff27aaa608) at libc-start.c:287
#15 0x00000000004094d9 in _start ()
(gdb)
Please Log in or Create an account to join the conversation.
0x000000000040cf56 in GPhotoCCD::create_switch (this=0xbdf2c0,
basestr=0xc30804 "whitebiaspresetno", options=0xc89c60, max_opts=1,
setidx=0) at /home/max/prj/indi/3rdparty/indi-gphoto/gphoto_ccd.cpp:821
Please Log in or Create an account to join the conversation.
int gphoto_read_widget(gphoto_widget *widget)
{
char *ptr=NULL;
int i;
int ret = GP_OK;
switch(widget->type) {
case GP_WIDGET_TEXT:
/* some code here */
case GP_WIDGET_RADIO:
case GP_WIDGET_MENU:
ret = gp_widget_get_value (widget->widget, &ptr);
/* the first time precessing the whitebiaspresetno widget, ret = GP_OK, and ptr still NULL */
if (ret != GP_OK)
return ret;
if (! widget->choices) {
widget->choice_cnt = gp_widget_count_choices (widget->widget);
widget->choices = calloc(sizeof(char *), widget->choice_cnt + 1);
/* allocate memery */
for ( i=0; i<widget->choice_cnt; i++) {
const char *choice=NULL;
ret = gp_widget_get_choice (widget->widget, i, &choice);
/ * ret = GP_OK and choice = "0" */
if (ret != GP_OK)
return ret;
if (ptr && choice)
{
if (strcmp(choice, ptr) == 0)
widget->value.index = i;
widget->choices[i] = choice;
}
else
return GP_ERROR;
/* ptr = NULL, so return GP_ERROR, but widget->choices is not NULL */
}
}
break;
case GP_WIDGET_DATE:
ret = gp_widget_get_value (widget->widget, &widget->value.date);
break;
default:
fprintf(stderr, "WARNING: Widget type: %d is unsupported\n", widget->type);
}
return ret;
}
gphoto_widget *gphoto_get_widget_info(gphoto_driver *gphoto, gphoto_widget_list **iter)
{
gphoto_widget *widget;
if(! *iter)
return NULL;
widget = (*iter)->widget;
int ret = gphoto_read_widget(widget);
/* ret = GP_ERROR */
if (ret == GP_OK)
{
*iter=(*iter)->next;
return widget;
}
else
return NULL;
/* so iter still point to whitbiaspresetno widget */
}
int gphoto_read_widget(gphoto_widget *widget)
{
char *ptr=NULL;
int i;
int ret = GP_OK;
switch(widget->type) {
case GP_WIDGET_TEXT:
/* some code here */
case GP_WIDGET_RADIO:
case GP_WIDGET_MENU:
ret = gp_widget_get_value (widget->widget, &ptr);
/* the second time precessing the whitebiaspresetno widget, ret = GP_OK, and ptr still NULL */
if (ret != GP_OK)
return ret;
/* the last time widget whitbiaspresetno's choices's memery is allocated , but value of choices[0] is 0x0 */
/* this time func will directly return ret value, GP_OK */
if (! widget->choices) {
widget->choice_cnt = gp_widget_count_choices (widget->widget);
widget->choices = calloc(sizeof(char *), widget->choice_cnt + 1);
for ( i=0; i<widget->choice_cnt; i++) {
const char *choice=NULL;
ret = gp_widget_get_choice (widget->widget, i, &choice);
if (ret != GP_OK)
return ret;
if (ptr && choice)
{
if (strcmp(choice, ptr) == 0)
widget->value.index = i;
widget->choices[i] = choice;
}
else
return GP_ERROR;
}
}
break;
case GP_WIDGET_DATE:
ret = gp_widget_get_value (widget->widget, &widget->value.date);
break;
default:
fprintf(stderr, "WARNING: Widget type: %d is unsupported\n", widget->type);
}
return ret;
}
gphoto_widget *gphoto_get_widget_info(gphoto_driver *gphoto, gphoto_widget_list **iter)
{
gphoto_widget *widget;
if(! *iter)
return NULL;
widget = (*iter)->widget;
int ret = gphoto_read_widget(widget);
*iter=(*iter)->next;
if (ret == GP_OK)
{
return widget;
}
else
return NULL;
}
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.