usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Fwd: Re[2]: Hardware selection for X310-based system

V
Vladimir
Tue, Nov 10, 2015 3:44 PM

Hi Michael,

  1. Thank you for the direction where to look, it's really something related with the NIC. For some reason it doesn't work with the TP-Link card which is identified as "Realtek PCI GBE Family Controller" in Device Manager, but uhd_usrp_brobe works well with the similar controller which is integrated on MB and identified as "Realtek PCIe GBE Family Controller". The rx/tx tests also pass normally over the 10GBE connection on Port 1, so we won't go deeper into the problem with the PCI controller now, just will use other cards.

  2. But the question with the 64-bit configuration still remains - it looks like what you have as Win64 binary pack for v. 3.009.001 is in fact 32-bit. Eventually we need to integrate uhd in the 64-bit application, so what is the perspective here?

Thank you!
Vladimir Pavlenko

Понедельник,  9 ноября 2015, 19:18 -08:00 от Michael West michael.west@ettus.com:

Hi Vladimir,

It could be the Ethernet controller or MTU setting.  Make sure your MTU is set to 1500 (some 1 GbE controllers do not support jumbo frames), make sure you have the latest driver for the Ethernet controller, and make sure the controller is not the Intel 82579LM (it has know issues with dropping UDP packets).  If all that looks good, use Wireshark to inspect the network traffic and make sure you are seeing responses from  192.168.10.2:49153 to the host when executing uhd_usrp_probe.exe.

Regards,
Michael

On Mon, Nov 9, 2015 at 5:31 PM, James Humphries via USRP-users  < usrp-users@lists.ettus.com > wrote:

Hi Vladimir,

Do you still get the error if you specify the same input arguments as you did in the first example?

uhd_usrp_probe. exe  --args="type=x300,addr=192. 168.10.2"

-Trip

On Mon, Nov 9, 2015 at 6:10 PM, Vladimir  < www2008_2@mail.ru > wrote:

Yes, directly to Port 0, and it does not seem to have any problems connecting. I could ping the device without a problem from the very beginning, it just reported version mismatch as usual, until I uploaded the right one for 3.009.001.

Vladimir

Понедельник,  9 ноября 2015, 13:08 -05:00 от James Humphries < james.humphries@ettus.com >:

Hi Vladimir,

Is the X300 connected directly to the host computer via the Ethernet cable? And are you using Port 0 or Port 1 to attach the Ethernet cable on the X300?

-Trip

On Mon, Nov 9, 2015 at 11:13 AM, Vladimir via USRP-users  < usrp-users@lists.ettus.com > wrote:

Hello,

Cannot get uhd_usrp_probe running in Win 7 x64.

We recently received a new X300 unit with UBX board and I'm trying to get it up and running on 1Gb Ethernet. I upgraded the firmware and some initial checks pass, but then it stops with some assertion. I use  http://files.ettus.com/binaries/uhd/latest_release/uhd_003.009.001-release_Win64_VS2010.exe , but have tried Win32 version too, with the same result.

Here are the dumps of the runs:


C:\Program Files (x86)\UHD\bin>uhd_image_loader.exe --args="type=x300,addr=192.168.10.2"
Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release

Unit: USRP X300 (30A7038, 192.168.10.2)
FPGA Image: C:\Program Files (x86)\UHD\share\uhd\images\usrp_x300_fpga_HGS.bit
-- Initializing FPGA loading...successful.
-- Loading HGS FPGA image: 100% (87/87 sectors)
-- Finalizing image load...successful.


C:\Program Files (x86)\UHD\bin>uhd_usrp_probe.exe
Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release

-- X300 initialization sequence...
-- Determining maximum frame size... 1472 bytes.
-- Setup basic communication...
-- Loading values from EEPROM...
-- Setup RF frontend clocking...
-- Radio 1x clock:200
-- Initialize Radio0 control...
-- Creating WSA UDP transport for  192.168.10.2:49153
-- Performing register loopback test... pass
Error: EnvironmentError: IOError: Radio ctrl (A) packet parse error - AssertionError: packet_info.packet_count == (seq_to_ack & 0xfff)
  in unsigned __int64 __cdecl radio_ctrl_core_3000_impl::wait_for_ack(const bool)
  at ..........\lib\usrp\cores\radio_ctrl_core_3000.cpp:264


C:\Program Files (x86)\UHD\bin>uhd_find_devices.exe
Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release


-- UHD Device 0

Device Address:
    type: x300
    addr: 192.168.10.2
    fpga: HGS
    name:
    serial: 30A7038
    product: X300

Also want to point at the strange thing with Win64 version. Seems that it is actually installing some variant of 32-bit version in \Program Files (x86)\ directory. See corresponding "Win32" strings in logs - all of them are produced by Win64 installation!

Thanks
Vladimir Pavlenko


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Hi Michael, 1. Thank you for the direction where to look, it's really something related with the NIC. For some reason it doesn't work with the TP-Link card which is identified as "Realtek PCI GBE Family Controller" in Device Manager, but uhd_usrp_brobe works well with the similar controller which is integrated on MB and identified as "Realtek PCIe GBE Family Controller". The rx/tx tests also pass normally over the 10GBE connection on Port 1, so we won't go deeper into the problem with the PCI controller now, just will use other cards. 2. But the question with the 64-bit configuration still remains - it looks like what you have as Win64 binary pack for v. 3.009.001 is in fact 32-bit. Eventually we need to integrate uhd in the 64-bit application, so what is the perspective here? Thank you! Vladimir Pavlenko >Понедельник, 9 ноября 2015, 19:18 -08:00 от Michael West <michael.west@ettus.com>: > >Hi Vladimir, > >It could be the Ethernet controller or MTU setting.  Make sure your MTU is set to 1500 (some 1 GbE controllers do not support jumbo frames), make sure you have the latest driver for the Ethernet controller, and make sure the controller is not the Intel 82579LM (it has know issues with dropping UDP packets).  If all that looks good, use Wireshark to inspect the network traffic and make sure you are seeing responses from 192.168.10.2:49153 to the host when executing uhd_usrp_probe.exe. > >Regards, >Michael > >On Mon, Nov 9, 2015 at 5:31 PM, James Humphries via USRP-users < usrp-users@lists.ettus.com > wrote: >>Hi Vladimir, >> >>Do you still get the error if you specify the same input arguments as you did in the first example? >> >>uhd_usrp_probe. exe  --args="type=x300,addr=192. 168.10.2" >> >>-Trip >> >> >> >>On Mon, Nov 9, 2015 at 6:10 PM, Vladimir < www2008_2@mail.ru > wrote: >>>Yes, directly to Port 0, and it does not seem to have any problems connecting. I could ping the device without a problem from the very beginning, it just reported version mismatch as usual, until I uploaded the right one for 3.009.001. >>> >>>Vladimir >>> >>>>Понедельник, 9 ноября 2015, 13:08 -05:00 от James Humphries < james.humphries@ettus.com >: >>>> >>>> >>>>Hi Vladimir, >>>> >>>>Is the X300 connected directly to the host computer via the Ethernet cable? And are you using Port 0 or Port 1 to attach the Ethernet cable on the X300? >>>> >>>>-Trip >>>> >>>>On Mon, Nov 9, 2015 at 11:13 AM, Vladimir via USRP-users < usrp-users@lists.ettus.com > wrote: >>>>>Hello, >>>>> >>>>>Cannot get uhd_usrp_probe running in Win 7 x64. >>>>> >>>>>We recently received a new X300 unit with UBX board and I'm trying to get it up and running on 1Gb Ethernet. I upgraded the firmware and some initial checks pass, but then it stops with some assertion. I use http://files.ettus.com/binaries/uhd/latest_release/uhd_003.009.001-release_Win64_VS2010.exe , but have tried Win32 version too, with the same result. >>>>> >>>>>Here are the dumps of the runs: >>>>> >>>>>-------------------------------------------------------------------- >>>>>C:\Program Files (x86)\UHD\bin>uhd_image_loader.exe --args="type=x300,addr=192.168.10.2" >>>>>Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release >>>>> >>>>>Unit: USRP X300 (30A7038, 192.168.10.2) >>>>>FPGA Image: C:\Program Files (x86)\UHD\share\uhd\images\usrp_x300_fpga_HGS.bit >>>>>-- Initializing FPGA loading...successful. >>>>>-- Loading HGS FPGA image: 100% (87/87 sectors) >>>>>-- Finalizing image load...successful. >>>>> >>>>>-------------------------------------------------------------------- >>>>>C:\Program Files (x86)\UHD\bin>uhd_usrp_probe.exe >>>>>Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release >>>>> >>>>>-- X300 initialization sequence... >>>>>-- Determining maximum frame size... 1472 bytes. >>>>>-- Setup basic communication... >>>>>-- Loading values from EEPROM... >>>>>-- Setup RF frontend clocking... >>>>>-- Radio 1x clock:200 >>>>>-- Initialize Radio0 control... >>>>>-- Creating WSA UDP transport for 192.168.10.2:49153 >>>>>-- Performing register loopback test... pass >>>>>Error: EnvironmentError: IOError: Radio ctrl (A) packet parse error - AssertionError: packet_info.packet_count == (seq_to_ack & 0xfff) >>>>>  in unsigned __int64 __cdecl radio_ctrl_core_3000_impl::wait_for_ack(const bool) >>>>>  at ..\..\..\..\..\lib\usrp\cores\radio_ctrl_core_3000.cpp:264 >>>>> >>>>>-------------------------------------------------------------------- >>>>>C:\Program Files (x86)\UHD\bin>uhd_find_devices.exe >>>>>Win32; Microsoft Visual C++ version 10.0; Boost_105100; UHD_003.009.001-release >>>>> >>>>>-------------------------------------------------- >>>>>-- UHD Device 0 >>>>>-------------------------------------------------- >>>>>Device Address: >>>>>    type: x300 >>>>>    addr: 192.168.10.2 >>>>>    fpga: HGS >>>>>    name: >>>>>    serial: 30A7038 >>>>>    product: X300 >>>>> >>>>>Also want to point at the strange thing with Win64 version. Seems that it is actually installing some variant of 32-bit version in \Program Files (x86)\ directory. See corresponding "Win32" strings in logs - all of them are produced by Win64 installation! >>>>> >>>>>Thanks >>>>>Vladimir Pavlenko >>>>> >>>>> >>>>> >>>>>_______________________________________________ >>>>>USRP-users mailing list >>>>>USRP-users@lists.ettus.com >>>>>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>>>> >>>> >>> >>> >>> >> >> >>_______________________________________________ >>USRP-users mailing list >>USRP-users@lists.ettus.com >>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >
V
Vladimir
Wed, Nov 11, 2015 2:40 PM

Hi,

For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in \Program Files (x86)\ and the utilities write "Win32" in their greetings lines.

Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now.

Specifically I installed VS2010 version.

Thank you!
Vladimir Pavlenko

Hi, For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in \Program Files (x86)\ and the utilities write "Win32" in their greetings lines. Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now. Specifically I installed VS2010 version. Thank you! Vladimir Pavlenko
M
mleech@ripnet.com
Wed, Nov 11, 2015 3:45 PM

I think that's just in the greeting line, and that the packages are
actually 64-bit. But I have a query in to engineering to confirm.

Unfortunately, I'm not a windows guy, so I don't know if there's an
equivalent to "file" on Unix-like systems that tells you what's in the
ELF headers.

On 2015-11-11 09:40, Vladimir via USRP-users wrote:

Hi,

For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in Program Files (x86) and the utilities write "Win32" in their greetings lines.

Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now.

Specifically I installed VS2010 version.

Thank you!
Vladimir Pavlenko


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com [1]

I *think* that's just in the greeting line, and that the packages are actually 64-bit. But I have a query in to engineering to confirm. Unfortunately, I'm not a windows guy, so I don't know if there's an equivalent to "file" on Unix-like systems that tells you what's in the ELF headers. On 2015-11-11 09:40, Vladimir via USRP-users wrote: > Hi, > > For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in Program Files (x86) and the utilities write "Win32" in their greetings lines. > > Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now. > > Specifically I installed VS2010 version. > > Thank you! > Vladimir Pavlenko > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com [1] Links: ------ [1] http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MW
Michael West
Wed, Nov 11, 2015 10:38 PM

Hi Vladimir,

There is an open issue with the installer where the default install
directory for the 64-bit version is the Program Files (x86) directory and
the greeting line does say "Win32".  You can change the install directory
during installation and just ignore the greeting line until the issue is
resolved.

Regards,
Michael

On Wed, Nov 11, 2015 at 7:45 AM, Marcus D. Leech via USRP-users <
usrp-users@lists.ettus.com> wrote:

I think that's just in the greeting line, and that the packages are
actually 64-bit.  But I have a query in to engineering to confirm.

Unfortunately, I'm not a windows guy, so I don't know if there's an
equivalent to "file" on Unix-like systems that tells you what's in the ELF
headers.

On 2015-11-11 09:40, Vladimir via USRP-users wrote:

Hi,

For some reason I didn't get any answers to my questions about the 64-bit
Windows distribution. Could you please explain what "Win64" actually means
here? Because the packages install in \Program Files (x86)\ and the
utilities write "Win32" in their greetings lines.

Not that it is of much importance for those binaries themselves, but....
Since I'm planning to use a 64-bit version of UHD and I read here some time
ago that you had some glitch in Windows installer, I'm wondering if 64-bit
version is in compileable state now.

Specifically I installed VS2010 version.

Thank you!
Vladimir Pavlenko


USRP-users mailing listUSRP-users@lists.ettus.comhttp://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Hi Vladimir, There is an open issue with the installer where the default install directory for the 64-bit version is the Program Files (x86) directory and the greeting line does say "Win32". You can change the install directory during installation and just ignore the greeting line until the issue is resolved. Regards, Michael On Wed, Nov 11, 2015 at 7:45 AM, Marcus D. Leech via USRP-users < usrp-users@lists.ettus.com> wrote: > I *think* that's just in the greeting line, and that the packages are > actually 64-bit. But I have a query in to engineering to confirm. > > Unfortunately, I'm not a windows guy, so I don't know if there's an > equivalent to "file" on Unix-like systems that tells you what's in the ELF > headers. > > > > > > > On 2015-11-11 09:40, Vladimir via USRP-users wrote: > > Hi, > > For some reason I didn't get any answers to my questions about the 64-bit > Windows distribution. Could you please explain what "Win64" actually means > here? Because the packages install in \Program Files (x86)\ and the > utilities write "Win32" in their greetings lines. > > Not that it is of much importance for those binaries themselves, but.... > Since I'm planning to use a 64-bit version of UHD and I read here some time > ago that you had some glitch in Windows installer, I'm wondering if 64-bit > version is in compileable state now. > > Specifically I installed VS2010 version. > > Thank you! > Vladimir Pavlenko > > > _______________________________________________ > USRP-users mailing listUSRP-users@lists.ettus.comhttp://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > >
V
Vladimir
Thu, Nov 12, 2015 12:10 PM

Thank you, guys, sorry for being lazy to test binary format, was mislead by the strings. Still, two items pointing in the same wrong direction look pretty suspicious :).

Vladimir

Среда, 11 ноября 2015, 14:38 -08:00 от Michael West michael.west@ettus.com:

Hi Vladimir,

There is an open issue with the installer where the default install directory for the 64-bit version is the Program Files (x86) directory and the greeting line does say "Win32".  You can change the install directory during installation and just ignore the greeting line until the issue is resolved.

Regards,
Michael

On Wed, Nov 11, 2015 at 7:45 AM, Marcus D. Leech via USRP-users  < usrp-users@lists.ettus.com > wrote:

I think that's just in the greeting line, and that the packages are actually 64-bit.  But I have a query in to engineering to confirm.
Unfortunately, I'm not a windows guy, so I don't know if there's an equivalent to "file" on Unix-like systems that tells you what's in the ELF headers.
 
 
 
On 2015-11-11 09:40, Vladimir via USRP-users wrote:

Hi,

For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in \Program Files (x86)\ and the utilities write "Win32" in their greetings lines.

Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now.

Specifically I installed VS2010 version.

Thank you!
Vladimir Pavlenko


USRP-users mailing list



Thank you, guys, sorry for being lazy to test binary format, was mislead by the strings. Still, two items pointing in the same wrong direction look pretty suspicious :). Vladimir >Среда, 11 ноября 2015, 14:38 -08:00 от Michael West <michael.west@ettus.com>: > >Hi Vladimir, > >There is an open issue with the installer where the default install directory for the 64-bit version is the Program Files (x86) directory and the greeting line does say "Win32".  You can change the install directory during installation and just ignore the greeting line until the issue is resolved. > >Regards, >Michael > >On Wed, Nov 11, 2015 at 7:45 AM, Marcus D. Leech via USRP-users < usrp-users@lists.ettus.com > wrote: >>I *think* that's just in the greeting line, and that the packages are actually 64-bit.  But I have a query in to engineering to confirm. >>Unfortunately, I'm not a windows guy, so I don't know if there's an equivalent to "file" on Unix-like systems that tells you what's in the ELF headers. >>  >>  >>  >>On 2015-11-11 09:40, Vladimir via USRP-users wrote: >>>Hi, >>> >>>For some reason I didn't get any answers to my questions about the 64-bit Windows distribution. Could you please explain what "Win64" actually means here? Because the packages install in \Program Files (x86)\ and the utilities write "Win32" in their greetings lines. >>> >>>Not that it is of much importance for those binaries themselves, but.... Since I'm planning to use a 64-bit version of UHD and I read here some time ago that you had some glitch in Windows installer, I'm wondering if 64-bit version is in compileable state now. >>> >>>Specifically I installed VS2010 version. >>> >>>Thank you! >>>Vladimir Pavlenko >>> >>> >>>_______________________________________________ USRP-users mailing list >>>USRP-users@lists.ettus.com >>>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >>_______________________________________________ >>USRP-users mailing list >>USRP-users@lists.ettus.com >>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> > 
V
Vladimir
Thu, Mar 31, 2016 12:55 PM

Hello,

I'm trying to get Debug version of uhd to work, using MSVS 2012. Generally, everything works, but I keep getting very stable exception at the exit of example programs (I started with uhd_usrp_probe, and tried rx_samples_to_file with the same result). I mean that programs themself work just fine, but access violation appears every time at the exit.

Particularly, it says:

Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. (Original text is in Russian, it's my translation.)

Initially, I started to build under VS 2010, then switched to 2012 to meet requirements listed on the web site. The error is very stable (the same in 2012 and 2010), exception arises only in Debug version at program exit (I build the whole BUILD_ALL and INSTALL projects as instructed on your site, Release version works fine).

My config is the following:

Windows 7 x64
USRP X300 with UBX-160
Intel X520-2 card

MSVS 2010/2012
Boost_1_60_0
UHD maint branch - 3.9.3

From what I tried to trace and saw in the call stack, it crashes somewhere deep in one of the calls to ~max287x<max2871_regs_t> destructor. I'm not sure if the maillist allows to do attachements? - will try to attach the call stack log and uhd_probe log with this letter.

I tried to isolate the simplest case - allow uhd_usrp_probe only to do dboard init and do series of returns up to the app level, starting right after this block:

        //create the xcvr object for each subdevice
        BOOST_FOREACH(const std::string &subdev, subdevs){
            db_ctor_args.sd_name = subdev;
            db_ctor_args.rx_id = rx_dboard_id;
            db_ctor_args.tx_id = tx_dboard_id;
            db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev);
            db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev);
            dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);
            _rx_dboards[subdev] = xcvr_dboard;
            _tx_dboards[subdev] = xcvr_dboard;
        }
in dboard_manager.cpp. I've had to make some patches to avoid exceptions from some uninitialized vars, but the code seems to act very predictable. It looks like the problem reproduces if we make a dboard_ctor() call and then try to exit the application using successive returns from all the funcs - then it crashes in the destructor of the dboard at the exit. If I try to "unwind" returns just before the above block - it exts form the app just fine, w/o access violation.

Can you doublecheck that Debug version of uhd works without a glitch at your setup with this hardware (I beleive the main factor is UBX board)? What kind of workaround can I try to do here?

Thank you in advance!
Vladimir

Hello, I'm trying to get Debug version of uhd to work, using MSVS 2012. Generally, everything works, but I keep getting very stable exception at the exit of example programs (I started with uhd_usrp_probe, and tried rx_samples_to_file with the same result). I mean that programs themself work just fine, but access violation appears every time at the exit. Particularly, it says: Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. (Original text is in Russian, it's my translation.) Initially, I started to build under VS 2010, then switched to 2012 to meet requirements listed on the web site. The error is very stable (the same in 2012 and 2010), exception arises only in Debug version at program exit (I build the whole BUILD_ALL and INSTALL projects as instructed on your site, Release version works fine). My config is the following: Windows 7 x64 USRP X300 with UBX-160 Intel X520-2 card MSVS 2010/2012 Boost_1_60_0 UHD maint branch - 3.9.3 From what I tried to trace and saw in the call stack, it crashes somewhere deep in one of the calls to ~max287x<max2871_regs_t> destructor. I'm not sure if the maillist allows to do attachements? - will try to attach the call stack log and uhd_probe log with this letter. I tried to isolate the simplest case - allow uhd_usrp_probe only to do dboard init and do series of returns up to the app level, starting right after this block:         //create the xcvr object for each subdevice         BOOST_FOREACH(const std::string &subdev, subdevs){             db_ctor_args.sd_name = subdev;             db_ctor_args.rx_id = rx_dboard_id;             db_ctor_args.tx_id = tx_dboard_id;             db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev);             db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev);             dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);             _rx_dboards[subdev] = xcvr_dboard;             _tx_dboards[subdev] = xcvr_dboard;         } in dboard_manager.cpp. I've had to make some patches to avoid exceptions from some uninitialized vars, but the code seems to act very predictable. It looks like the problem reproduces if we make a dboard_ctor() call and then try to exit the application using successive returns from all the funcs - then it crashes in the destructor of the dboard at the exit. If I try to "unwind" returns just before the above block - it exts form the app just fine, w/o access violation. Can you doublecheck that Debug version of uhd works without a glitch at your setup with this hardware (I beleive the main factor is UBX board)? What kind of workaround can I try to do here? Thank you in advance! Vladimir
V
Vladimir
Thu, Mar 31, 2016 5:53 PM

Seems that I found at least workaround for this case. The problem place is around the line 903 in max287x.hpp:

    _write(regs);
    _regs.save_state();
    _write_all_regs = false;

That _write seems not to be able to handle empty "regs" (size() == 0 in destructor), so it was enough to put

    if (regs.size() > 0)
        _write(regs);

Don't know if this is proper way to fix it, but at least it stopped those nasty exceptions for me. I checked in VS2010/2012 for Win32/64 with both uhd_usrp_probe and rx_samples_to_file - now debug version exit normally.

Vladimir

Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users usrp-users@lists.ettus.com:

Hello,

I'm trying to get Debug version of uhd to work, using MSVS 2012. Generally, everything works, but I keep getting very stable exception at the exit of example programs (I started with uhd_usrp_probe, and tried rx_samples_to_file with the same result). I mean that programs themself work just fine, but access violation appears every time at the exit.

Particularly, it says:

Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. (Original text is in Russian, it's my translation.)

Initially, I started to build under VS 2010, then switched to 2012 to meet requirements listed on the web site. The error is very stable (the same in 2012 and 2010), exception arises only in Debug version at program exit (I build the whole BUILD_ALL and INSTALL projects as instructed on your site, Release version works fine).

My config is the following:

Windows 7 x64
USRP X300 with UBX-160
Intel X520-2 card

MSVS 2010/2012
Boost_1_60_0
UHD maint branch - 3.9.3

From what I tried to trace and saw in the call stack, it crashes somewhere deep in one of the calls to ~max287x<max2871_regs_t> destructor. I'm not sure if the maillist allows to do attachements? - will try to attach the call stack log and uhd_probe log with this letter.

I tried to isolate the simplest case - allow uhd_usrp_probe only to do dboard init and do series of returns up to the app level, starting right after this block:

        //create the xcvr object for each subdevice
        BOOST_FOREACH(const std::string &subdev, subdevs){
            db_ctor_args.sd_name = subdev;
            db_ctor_args.rx_id = rx_dboard_id;
            db_ctor_args.tx_id = tx_dboard_id;
            db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev);
            db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev);
            dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);
            _rx_dboards[subdev] = xcvr_dboard;
            _tx_dboards[subdev] = xcvr_dboard;
        }
in dboard_manager.cpp. I've had to make some patches to avoid exceptions from some uninitialized vars, but the code seems to act very predictable. It looks like the problem reproduces if we make a dboard_ctor() call and then try to exit the application using successive returns from all the funcs - then it crashes in the destructor of the dboard at the exit. If I try to "unwind" returns just before the above block - it exts form the app just fine, w/o access violation.

Can you doublecheck that Debug version of uhd works without a glitch at your setup with this hardware (I beleive the main factor is UBX board)? What kind of workaround can I try to do here?

Thank you in advance!
Vladimir


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com



Seems that I found at least workaround for this case. The problem place is around the line 903 in max287x.hpp:     _write(regs);     _regs.save_state();     _write_all_regs = false; That _write seems not to be able to handle empty "regs" (size() == 0 in destructor), so it was enough to put     if (regs.size() > 0)         _write(regs); Don't know if this is proper way to fix it, but at least it stopped those nasty exceptions for me. I checked in VS2010/2012 for Win32/64 with both uhd_usrp_probe and rx_samples_to_file - now debug version exit normally. Vladimir >Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users <usrp-users@lists.ettus.com>: > >Hello, > >I'm trying to get Debug version of uhd to work, using MSVS 2012. Generally, everything works, but I keep getting very stable exception at the exit of example programs (I started with uhd_usrp_probe, and tried rx_samples_to_file with the same result). I mean that programs themself work just fine, but access violation appears every time at the exit. > >Particularly, it says: > >Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. (Original text is in Russian, it's my translation.) > >Initially, I started to build under VS 2010, then switched to 2012 to meet requirements listed on the web site. The error is very stable (the same in 2012 and 2010), exception arises only in Debug version at program exit (I build the whole BUILD_ALL and INSTALL projects as instructed on your site, Release version works fine). > >My config is the following: > >Windows 7 x64 >USRP X300 with UBX-160 >Intel X520-2 card > >MSVS 2010/2012 >Boost_1_60_0 >UHD maint branch - 3.9.3 > >From what I tried to trace and saw in the call stack, it crashes somewhere deep in one of the calls to ~max287x<max2871_regs_t> destructor. I'm not sure if the maillist allows to do attachements? - will try to attach the call stack log and uhd_probe log with this letter. > >I tried to isolate the simplest case - allow uhd_usrp_probe only to do dboard init and do series of returns up to the app level, starting right after this block: > >        //create the xcvr object for each subdevice >        BOOST_FOREACH(const std::string &subdev, subdevs){ >            db_ctor_args.sd_name = subdev; >            db_ctor_args.rx_id = rx_dboard_id; >            db_ctor_args.tx_id = tx_dboard_id; >            db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev); >            db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev); >            dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args); >            _rx_dboards[subdev] = xcvr_dboard; >            _tx_dboards[subdev] = xcvr_dboard; >        } >in dboard_manager.cpp. I've had to make some patches to avoid exceptions from some uninitialized vars, but the code seems to act very predictable. It looks like the problem reproduces if we make a dboard_ctor() call and then try to exit the application using successive returns from all the funcs - then it crashes in the destructor of the dboard at the exit. If I try to "unwind" returns just before the above block - it exts form the app just fine, w/o access violation. > >Can you doublecheck that Debug version of uhd works without a glitch at your setup with this hardware (I beleive the main factor is UBX board)? What kind of workaround can I try to do here? > >Thank you in advance! >Vladimir > >_______________________________________________ >USRP-users mailing list >USRP-users@lists.ettus.com >http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com 
MB
Martin Braun
Thu, Mar 31, 2016 6:38 PM

Derek,

we recently pushed a fix to maint that might fix this issue (I guess
you're using a UBX?). Can you confirm/deny?

Thanks!

Martin

On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote:

Seems that I found at least workaround for this case. The problem place
is around the line 903 in max287x.hpp:

 _write(regs);
 _regs.save_state();
 _write_all_regs = false;

That _write seems not to be able to handle empty "regs" (size() == 0 in
destructor), so it was enough to put

 if (regs.size() > 0)
     _write(regs);

Don't know if this is proper way to fix it, but at least it stopped
those nasty exceptions for me. I checked in VS2010/2012 for Win32/64
with both uhd_usrp_probe and rx_samples_to_file - now debug version exit
normally.

Vladimir

 Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users
 <usrp-users@lists.ettus.com>:

 Hello,

 I'm trying to get Debug version of uhd to work, using MSVS 2012.
 Generally, everything works, but I keep getting very stable
 exception at the exit of example programs (I started with
 uhd_usrp_probe, and tried rx_samples_to_file with the same result).
 I mean that programs themself work just fine, but access violation
 appears every time at the exit.

 Particularly, it says:

 Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe:
 0xC0000005: access violation trying to read memory at 0xFEEEFEFB.
 (Original text is in Russian, it's my translation.)

 Initially, I started to build under VS 2010, then switched to 2012
 to meet requirements listed on the web site. The error is very
 stable (the same in 2012 and 2010), exception arises only in Debug
 version at program exit (I build the whole BUILD_ALL and INSTALL
 projects as instructed on your site, Release version works fine).

 My config is the following:

 Windows 7 x64
 USRP X300 with UBX-160
 Intel X520-2 card

 MSVS 2010/2012
 Boost_1_60_0
 UHD maint branch - 3.9.3

 From what I tried to trace and saw in the call stack, it crashes
 somewhere deep in one of the calls to ~max287x<max2871_regs_t>
 destructor. I'm not sure if the maillist allows to do attachements?
 - will try to attach the call stack log and uhd_probe log with this
 letter.

 I tried to isolate the simplest case - allow uhd_usrp_probe only to
 do dboard init and do series of returns up to the app level,
 starting right after this block:

         //create the xcvr object for each subdevice
         BOOST_FOREACH(const std::string &subdev, subdevs){
             db_ctor_args.sd_name = subdev;
             db_ctor_args.rx_id = rx_dboard_id;
             db_ctor_args.tx_id = tx_dboard_id;
             db_ctor_args.rx_subtree =
 subtree->subtree("rx_frontends/" + subdev);
             db_ctor_args.tx_subtree =
 subtree->subtree("tx_frontends/" + subdev);
             dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);
             _rx_dboards[subdev] = xcvr_dboard;
             _tx_dboards[subdev] = xcvr_dboard;
         }
 in dboard_manager.cpp. I've had to make some patches to avoid
 exceptions from some uninitialized vars, but the code seems to act
 very predictable. It looks like the problem reproduces if we make a
 dboard_ctor() call and then try to exit the application using
 successive returns from all the funcs - then it crashes in the
 destructor of the dboard at the exit. If I try to "unwind" returns
 just before the above block - it exts form the app just fine, w/o
 access violation.

 Can you doublecheck that Debug version of uhd works without a glitch
 at your setup with this hardware (I beleive the main factor is UBX
 board)? What kind of workaround can I try to do here?

 Thank you in advance!
 Vladimir

 _______________________________________________
 USRP-users mailing list
 USRP-users@lists.ettus.com </compose?To=USRP%2dusers@lists.ettus.com>
 http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com




USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Derek, we recently pushed a fix to maint that might fix this issue (I guess you're using a UBX?). Can you confirm/deny? Thanks! Martin On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote: > Seems that I found at least workaround for this case. The problem place > is around the line 903 in max287x.hpp: > > _write(regs); > _regs.save_state(); > _write_all_regs = false; > > That _write seems not to be able to handle empty "regs" (size() == 0 in > destructor), so it was enough to put > > if (regs.size() > 0) > _write(regs); > > Don't know if this is proper way to fix it, but at least it stopped > those nasty exceptions for me. I checked in VS2010/2012 for Win32/64 > with both uhd_usrp_probe and rx_samples_to_file - now debug version exit > normally. > > Vladimir > > Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users > <usrp-users@lists.ettus.com>: > > Hello, > > I'm trying to get Debug version of uhd to work, using MSVS 2012. > Generally, everything works, but I keep getting very stable > exception at the exit of example programs (I started with > uhd_usrp_probe, and tried rx_samples_to_file with the same result). > I mean that programs themself work just fine, but access violation > appears every time at the exit. > > Particularly, it says: > > Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: > 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. > (Original text is in Russian, it's my translation.) > > Initially, I started to build under VS 2010, then switched to 2012 > to meet requirements listed on the web site. The error is very > stable (the same in 2012 and 2010), exception arises only in Debug > version at program exit (I build the whole BUILD_ALL and INSTALL > projects as instructed on your site, Release version works fine). > > My config is the following: > > Windows 7 x64 > USRP X300 with UBX-160 > Intel X520-2 card > > MSVS 2010/2012 > Boost_1_60_0 > UHD maint branch - 3.9.3 > > From what I tried to trace and saw in the call stack, it crashes > somewhere deep in one of the calls to ~max287x<max2871_regs_t> > destructor. I'm not sure if the maillist allows to do attachements? > - will try to attach the call stack log and uhd_probe log with this > letter. > > I tried to isolate the simplest case - allow uhd_usrp_probe only to > do dboard init and do series of returns up to the app level, > starting right after this block: > > //create the xcvr object for each subdevice > BOOST_FOREACH(const std::string &subdev, subdevs){ > db_ctor_args.sd_name = subdev; > db_ctor_args.rx_id = rx_dboard_id; > db_ctor_args.tx_id = tx_dboard_id; > db_ctor_args.rx_subtree = > subtree->subtree("rx_frontends/" + subdev); > db_ctor_args.tx_subtree = > subtree->subtree("tx_frontends/" + subdev); > dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args); > _rx_dboards[subdev] = xcvr_dboard; > _tx_dboards[subdev] = xcvr_dboard; > } > in dboard_manager.cpp. I've had to make some patches to avoid > exceptions from some uninitialized vars, but the code seems to act > very predictable. It looks like the problem reproduces if we make a > dboard_ctor() call and then try to exit the application using > successive returns from all the funcs - then it crashes in the > destructor of the dboard at the exit. If I try to "unwind" returns > just before the above block - it exts form the app just fine, w/o > access violation. > > Can you doublecheck that Debug version of uhd works without a glitch > at your setup with this hardware (I beleive the main factor is UBX > board)? What kind of workaround can I try to do here? > > Thank you in advance! > Vladimir > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com </compose?To=USRP%2dusers@lists.ettus.com> > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > >  > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >
MB
Martin Braun
Thu, Mar 31, 2016 8:03 PM

Apologies,

I meant Vladimir, not Derek.

Cheers,
M

On 03/31/2016 11:38 AM, Martin Braun wrote:

Derek,

we recently pushed a fix to maint that might fix this issue (I guess
you're using a UBX?). Can you confirm/deny?

Thanks!

Martin

On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote:

Seems that I found at least workaround for this case. The problem place
is around the line 903 in max287x.hpp:

 _write(regs);
 _regs.save_state();
 _write_all_regs = false;

That _write seems not to be able to handle empty "regs" (size() == 0 in
destructor), so it was enough to put

 if (regs.size() > 0)
     _write(regs);

Don't know if this is proper way to fix it, but at least it stopped
those nasty exceptions for me. I checked in VS2010/2012 for Win32/64
with both uhd_usrp_probe and rx_samples_to_file - now debug version exit
normally.

Vladimir

 Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users
 <usrp-users@lists.ettus.com>:

 Hello,

 I'm trying to get Debug version of uhd to work, using MSVS 2012.
 Generally, everything works, but I keep getting very stable
 exception at the exit of example programs (I started with
 uhd_usrp_probe, and tried rx_samples_to_file with the same result).
 I mean that programs themself work just fine, but access violation
 appears every time at the exit.

 Particularly, it says:

 Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe:
 0xC0000005: access violation trying to read memory at 0xFEEEFEFB.
 (Original text is in Russian, it's my translation.)

 Initially, I started to build under VS 2010, then switched to 2012
 to meet requirements listed on the web site. The error is very
 stable (the same in 2012 and 2010), exception arises only in Debug
 version at program exit (I build the whole BUILD_ALL and INSTALL
 projects as instructed on your site, Release version works fine).

 My config is the following:

 Windows 7 x64
 USRP X300 with UBX-160
 Intel X520-2 card

 MSVS 2010/2012
 Boost_1_60_0
 UHD maint branch - 3.9.3

 From what I tried to trace and saw in the call stack, it crashes
 somewhere deep in one of the calls to ~max287x<max2871_regs_t>
 destructor. I'm not sure if the maillist allows to do attachements?
 - will try to attach the call stack log and uhd_probe log with this
 letter.

 I tried to isolate the simplest case - allow uhd_usrp_probe only to
 do dboard init and do series of returns up to the app level,
 starting right after this block:

         //create the xcvr object for each subdevice
         BOOST_FOREACH(const std::string &subdev, subdevs){
             db_ctor_args.sd_name = subdev;
             db_ctor_args.rx_id = rx_dboard_id;
             db_ctor_args.tx_id = tx_dboard_id;
             db_ctor_args.rx_subtree =
 subtree->subtree("rx_frontends/" + subdev);
             db_ctor_args.tx_subtree =
 subtree->subtree("tx_frontends/" + subdev);
             dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);
             _rx_dboards[subdev] = xcvr_dboard;
             _tx_dboards[subdev] = xcvr_dboard;
         }
 in dboard_manager.cpp. I've had to make some patches to avoid
 exceptions from some uninitialized vars, but the code seems to act
 very predictable. It looks like the problem reproduces if we make a
 dboard_ctor() call and then try to exit the application using
 successive returns from all the funcs - then it crashes in the
 destructor of the dboard at the exit. If I try to "unwind" returns
 just before the above block - it exts form the app just fine, w/o
 access violation.

 Can you doublecheck that Debug version of uhd works without a glitch
 at your setup with this hardware (I beleive the main factor is UBX
 board)? What kind of workaround can I try to do here?

 Thank you in advance!
 Vladimir

 _______________________________________________
 USRP-users mailing list
 USRP-users@lists.ettus.com </compose?To=USRP%2dusers@lists.ettus.com>
 http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com




USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Apologies, I meant Vladimir, not Derek. Cheers, M On 03/31/2016 11:38 AM, Martin Braun wrote: > Derek, > > we recently pushed a fix to maint that might fix this issue (I guess > you're using a UBX?). Can you confirm/deny? > > Thanks! > > Martin > > On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote: >> Seems that I found at least workaround for this case. The problem place >> is around the line 903 in max287x.hpp: >> >> _write(regs); >> _regs.save_state(); >> _write_all_regs = false; >> >> That _write seems not to be able to handle empty "regs" (size() == 0 in >> destructor), so it was enough to put >> >> if (regs.size() > 0) >> _write(regs); >> >> Don't know if this is proper way to fix it, but at least it stopped >> those nasty exceptions for me. I checked in VS2010/2012 for Win32/64 >> with both uhd_usrp_probe and rx_samples_to_file - now debug version exit >> normally. >> >> Vladimir >> >> Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users >> <usrp-users@lists.ettus.com>: >> >> Hello, >> >> I'm trying to get Debug version of uhd to work, using MSVS 2012. >> Generally, everything works, but I keep getting very stable >> exception at the exit of example programs (I started with >> uhd_usrp_probe, and tried rx_samples_to_file with the same result). >> I mean that programs themself work just fine, but access violation >> appears every time at the exit. >> >> Particularly, it says: >> >> Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: >> 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. >> (Original text is in Russian, it's my translation.) >> >> Initially, I started to build under VS 2010, then switched to 2012 >> to meet requirements listed on the web site. The error is very >> stable (the same in 2012 and 2010), exception arises only in Debug >> version at program exit (I build the whole BUILD_ALL and INSTALL >> projects as instructed on your site, Release version works fine). >> >> My config is the following: >> >> Windows 7 x64 >> USRP X300 with UBX-160 >> Intel X520-2 card >> >> MSVS 2010/2012 >> Boost_1_60_0 >> UHD maint branch - 3.9.3 >> >> From what I tried to trace and saw in the call stack, it crashes >> somewhere deep in one of the calls to ~max287x<max2871_regs_t> >> destructor. I'm not sure if the maillist allows to do attachements? >> - will try to attach the call stack log and uhd_probe log with this >> letter. >> >> I tried to isolate the simplest case - allow uhd_usrp_probe only to >> do dboard init and do series of returns up to the app level, >> starting right after this block: >> >> //create the xcvr object for each subdevice >> BOOST_FOREACH(const std::string &subdev, subdevs){ >> db_ctor_args.sd_name = subdev; >> db_ctor_args.rx_id = rx_dboard_id; >> db_ctor_args.tx_id = tx_dboard_id; >> db_ctor_args.rx_subtree = >> subtree->subtree("rx_frontends/" + subdev); >> db_ctor_args.tx_subtree = >> subtree->subtree("tx_frontends/" + subdev); >> dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args); >> _rx_dboards[subdev] = xcvr_dboard; >> _tx_dboards[subdev] = xcvr_dboard; >> } >> in dboard_manager.cpp. I've had to make some patches to avoid >> exceptions from some uninitialized vars, but the code seems to act >> very predictable. It looks like the problem reproduces if we make a >> dboard_ctor() call and then try to exit the application using >> successive returns from all the funcs - then it crashes in the >> destructor of the dboard at the exit. If I try to "unwind" returns >> just before the above block - it exts form the app just fine, w/o >> access violation. >> >> Can you doublecheck that Debug version of uhd works without a glitch >> at your setup with this hardware (I beleive the main factor is UBX >> board)? What kind of workaround can I try to do here? >> >> Thank you in advance! >> Vladimir >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com </compose?To=USRP%2dusers@lists.ettus.com> >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >> >> >>  >> >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >
V
Vladimir
Fri, Apr 1, 2016 1:03 PM

Martin,

Yes, now with last maint, debug version exits clean, thank you!

Vladimir

Четверг, 31 марта 2016, 23:03 +03:00 от Martin Braun via USRP-users usrp-users@lists.ettus.com:

Apologies,

I meant Vladimir, not Derek.

Cheers,
M

On 03/31/2016 11:38 AM, Martin Braun wrote:

Derek,

we recently pushed a fix to maint that might fix this issue (I guess
you're using a UBX?). Can you confirm/deny?

Thanks!

Martin

On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote:

Seems that I found at least workaround for this case. The problem place
is around the line 903 in max287x.hpp:

 _write(regs);
 _regs.save_state();
 _write_all_regs = false;

That _write seems not to be able to handle empty "regs" (size() == 0 in
destructor), so it was enough to put

 if (regs.size() > 0)
     _write(regs);

Don't know if this is proper way to fix it, but at least it stopped
those nasty exceptions for me. I checked in VS2010/2012 for Win32/64
with both uhd_usrp_probe and rx_samples_to_file - now debug version exit
normally.

Vladimir

 Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users
 < usrp-users@lists.ettus.com >:

 Hello,

 I'm trying to get Debug version of uhd to work, using MSVS 2012.
 Generally, everything works, but I keep getting very stable
 exception at the exit of example programs (I started with
 uhd_usrp_probe, and tried rx_samples_to_file with the same result).
 I mean that programs themself work just fine, but access violation
 appears every time at the exit.

 Particularly, it says:

 Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe:
 0xC0000005: access violation trying to read memory at 0xFEEEFEFB.
 (Original text is in Russian, it's my translation.)

 Initially, I started to build under VS 2010, then switched to 2012
 to meet requirements listed on the web site. The error is very
 stable (the same in 2012 and 2010), exception arises only in Debug
 version at program exit (I build the whole BUILD_ALL and INSTALL
 projects as instructed on your site, Release version works fine).

 My config is the following:

 Windows 7 x64
 USRP X300 with UBX-160
 Intel X520-2 card

 MSVS 2010/2012
 Boost_1_60_0
 UHD maint branch - 3.9.3

 From what I tried to trace and saw in the call stack, it crashes
 somewhere deep in one of the calls to ~max287x<max2871_regs_t>
 destructor. I'm not sure if the maillist allows to do attachements?
 - will try to attach the call stack log and uhd_probe log with this
 letter.

 I tried to isolate the simplest case - allow uhd_usrp_probe only to
 do dboard init and do series of returns up to the app level,
 starting right after this block:

         //create the xcvr object for each subdevice
         BOOST_FOREACH(const std::string &subdev, subdevs){
             db_ctor_args.sd_name = subdev;
             db_ctor_args.rx_id = rx_dboard_id;
             db_ctor_args.tx_id = tx_dboard_id;
             db_ctor_args.rx_subtree =
 subtree->subtree("rx_frontends/" + subdev);
             db_ctor_args.tx_subtree =
 subtree->subtree("tx_frontends/" + subdev);
             dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args);
             _rx_dboards[subdev] = xcvr_dboard;
             _tx_dboards[subdev] = xcvr_dboard;
         }
 in dboard_manager.cpp. I've had to make some patches to avoid
 exceptions from some uninitialized vars, but the code seems to act
 very predictable. It looks like the problem reproduces if we make a
 dboard_ctor() call and then try to exit the application using
 successive returns from all the funcs - then it crashes in the
 destructor of the dboard at the exit. If I try to "unwind" returns
 just before the above block - it exts form the app just fine, w/o
 access violation.

 Can you doublecheck that Debug version of uhd works without a glitch
 at your setup with this hardware (I beleive the main factor is UBX
 board)? What kind of workaround can I try to do here?

 Thank you in advance!
 Vladimir

 _______________________________________________
 USRP-users mailing list

USRP-users@lists.ettus.com < /compose?To=USRP%2dusers@lists.ettus.com >
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com




USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com



Martin, Yes, now with last maint, debug version exits clean, thank you! Vladimir >Четверг, 31 марта 2016, 23:03 +03:00 от Martin Braun via USRP-users <usrp-users@lists.ettus.com>: > >Apologies, > >I meant Vladimir, not Derek. > >Cheers, >M > >On 03/31/2016 11:38 AM, Martin Braun wrote: >> Derek, >> >> we recently pushed a fix to maint that might fix this issue (I guess >> you're using a UBX?). Can you confirm/deny? >> >> Thanks! >> >> Martin >> >> On 03/31/2016 10:53 AM, Vladimir via USRP-users wrote: >>> Seems that I found at least workaround for this case. The problem place >>> is around the line 903 in max287x.hpp: >>> >>> _write(regs); >>> _regs.save_state(); >>> _write_all_regs = false; >>> >>> That _write seems not to be able to handle empty "regs" (size() == 0 in >>> destructor), so it was enough to put >>> >>> if (regs.size() > 0) >>> _write(regs); >>> >>> Don't know if this is proper way to fix it, but at least it stopped >>> those nasty exceptions for me. I checked in VS2010/2012 for Win32/64 >>> with both uhd_usrp_probe and rx_samples_to_file - now debug version exit >>> normally. >>> >>> Vladimir >>> >>> Четверг, 31 марта 2016, 15:55 +03:00 от Vladimir via USRP-users >>> < usrp-users@lists.ettus.com >: >>> >>> Hello, >>> >>> I'm trying to get Debug version of uhd to work, using MSVS 2012. >>> Generally, everything works, but I keep getting very stable >>> exception at the exit of example programs (I started with >>> uhd_usrp_probe, and tried rx_samples_to_file with the same result). >>> I mean that programs themself work just fine, but access violation >>> appears every time at the exit. >>> >>> Particularly, it says: >>> >>> Unhandled exception at 0x0F83DECC (uhd.dll) in uhd_usrp_probe.exe: >>> 0xC0000005: access violation trying to read memory at 0xFEEEFEFB. >>> (Original text is in Russian, it's my translation.) >>> >>> Initially, I started to build under VS 2010, then switched to 2012 >>> to meet requirements listed on the web site. The error is very >>> stable (the same in 2012 and 2010), exception arises only in Debug >>> version at program exit (I build the whole BUILD_ALL and INSTALL >>> projects as instructed on your site, Release version works fine). >>> >>> My config is the following: >>> >>> Windows 7 x64 >>> USRP X300 with UBX-160 >>> Intel X520-2 card >>> >>> MSVS 2010/2012 >>> Boost_1_60_0 >>> UHD maint branch - 3.9.3 >>> >>> From what I tried to trace and saw in the call stack, it crashes >>> somewhere deep in one of the calls to ~max287x<max2871_regs_t> >>> destructor. I'm not sure if the maillist allows to do attachements? >>> - will try to attach the call stack log and uhd_probe log with this >>> letter. >>> >>> I tried to isolate the simplest case - allow uhd_usrp_probe only to >>> do dboard init and do series of returns up to the app level, >>> starting right after this block: >>> >>> //create the xcvr object for each subdevice >>> BOOST_FOREACH(const std::string &subdev, subdevs){ >>> db_ctor_args.sd_name = subdev; >>> db_ctor_args.rx_id = rx_dboard_id; >>> db_ctor_args.tx_id = tx_dboard_id; >>> db_ctor_args.rx_subtree = >>> subtree->subtree("rx_frontends/" + subdev); >>> db_ctor_args.tx_subtree = >>> subtree->subtree("tx_frontends/" + subdev); >>> dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args); >>> _rx_dboards[subdev] = xcvr_dboard; >>> _tx_dboards[subdev] = xcvr_dboard; >>> } >>> in dboard_manager.cpp. I've had to make some patches to avoid >>> exceptions from some uninitialized vars, but the code seems to act >>> very predictable. It looks like the problem reproduces if we make a >>> dboard_ctor() call and then try to exit the application using >>> successive returns from all the funcs - then it crashes in the >>> destructor of the dboard at the exit. If I try to "unwind" returns >>> just before the above block - it exts form the app just fine, w/o >>> access violation. >>> >>> Can you doublecheck that Debug version of uhd works without a glitch >>> at your setup with this hardware (I beleive the main factor is UBX >>> board)? What kind of workaround can I try to do here? >>> >>> Thank you in advance! >>> Vladimir >>> >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com < /compose?To=USRP%2dusers@lists.ettus.com > >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >>> >>> >>>  >>> >>> >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >> > > >_______________________________________________ >USRP-users mailing list >USRP-users@lists.ettus.com >http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com