- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một hàng đợi đồng bộ đơn giản
mẫu
lớpHàng đợi được đồng bộ hóa
{
public:
void Enqueue(const T& data)
{
boost::unique_lock lock(queueMutex);
dataQueue.push(dữ liệu);
conditionVariable.notify_one();
}
TDequeue()
{
boost::unique_lock lock(queueMutex);
trong khi (dataQueue.size()==0)
{
conditionVariable.wait(lock);
}
T result=dataQueue.front();
return result;
}
private:
std::queue dataQueue; // Sử dụng hàng đợi STL để lưu trữ dữ liệu
boost::mutex queueMutex // Mutex để đồng bộ hóa
boost::condition_variable conditionVariable; // Điều kiện cần chờ
};
Khi tôi loại bỏ hàng đợi khỏi hàng đợi, đôi khi nó làm hỏng đống....
HEAP: Khối Heap miễn phí ccb1080 được sửa đổi tại ccb13c0 sau khi được giải phóng
Ngăn xếp cuộc gọi là:
ntdll.dll!76fa5654()
[Các khung bên dưới có thể không chính xác và/hoặc bị thiếu, không có ký hiệu nào được tải cho ntdll.dll]
ntdll.dll!76f6a554()
ntdll.dll!76f35a70()
ntdll.dll!76fa5eff()
ntdll.dll!76f6a3ba()
ntdll.dll!76f35a70()
msvcr90d.dll!_heap_alloc_base(unsigned int size=1222) Dòng 105 + 0x28 byte C
msvcr90d.dll!_heap_alloc_dbg_impl(unsigned int nSize=1186, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x1310ee18) Dòng 427 + 0x9 byte C++
msvcr90d.dll!_nh_malloc_dbg_impl(unsigned int nSize=1186, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x1310ee18) Dòng 239 + 0x19 byte C++
msvcr90d.dll!_nh_malloc_dbg(unsigned int nSize=1186, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Dòng 296 + 0x1d byte C++
msvcr90d.dll!malloc(unsigned int nSize=1186) Dòng 56 + 0x15 byte C++
msvcr90d.dll!operator new(unsigned int size=1186) Dòng 59 + 0x9 byte C++
x.ax!std::_Allocate(unsigned int _Count=1186, unsigned char * __formal=0x00000000) Dòng 43 + 0x9 byte C++
ax.ax!std::allocator::allocate(unsigned int _Count=1186) Dòng 145 + 0xb byte C++
ax.ax!std::vector >::_Buy(unsigned int _Capacity=1186) Dòng 1110 + 0xf byte C++
ax.ax!std::vector >::vector >(const std::vector > & _Right=[1186](83 'S',50 '2',54 '6',67 'C',162 '¢',4 '',0,0,108 'l',0,0,0,2 '',64 '@',0,0,6 '',14 ' ',64 '@',0,35 '#',2 '',147 '"',76 'L',114 'r',53 '5',0,0,54 '6',79 'O',78 'N',4 '',0,0,0,0,54 '6',79 'O',78 'N',4 '',0,0,0,0,255 'ÿ' ,255 'ÿ',255 'ÿ',255 'ÿ',255 'ÿ',255 'ÿ',255 'ÿ',255 'ÿ',106 'j',4 '',0,0,0,0,0,1 '',65 'A',154 'š',3 '',1 '',176 '°', 159 'Ÿ',255 'ÿ',240 'ğ',199 'Ç',...)) Dòng 501 + 0x11 byte C++
ax.ax!SynchronisedQueue<> > >::Dequeue() Dòng 32 + 0xc byte C++
ax.ax!PPin::FillBuffer(IMediaSample * pSample=0x0cadbea8) Dòng 225 + 0x12 byte C++
ax.ax!PPin::DoBufferProcessingLoop() Dòng 300 + 0x13 byte C++
ax.ax!CSourceStream::ThreadProc() + 0x13e byte
ax.ax!CAMThread::InitialThreadProc() + 0x51 byte
kernel32.dll!753bed6c()
ntdll.dll!76f4377b()
ntdll.dll!76f4374e()
Điều gì có thể gây ra lỗi heap này? Làm cách nào để gỡ lỗi lỗi heap?
gia hạn:Ví dụ sử dụng
// xếp hàng
void GetVideoStreams(BYTE *pData)
{
std::vector vecFrame(pData, pData + nLen/sizeof(pData[0]));
IncomingFramesQueue.Enqueue(vecFrame);
}
//Dequeue
void ConsumeVideoStreams()
{
dữ liệu vector = IncomingFramesQueue.Dequeue();
}
câu trả lời hay nhất
Như đã đề cập ở trên - mã của bạn và dấu vết ngăn xếp bạn đã đăng hiển thị một số phân bổ bộ nhớ đang diễn ra. Cùng với thông báo lỗi, tôi cho rằng lỗi heap xảy ra ở nơi khác và xuất hiện mọi lúc trong hàng đợi vì nó sử dụng nhiều bộ nhớ để sao chép các vectơ này.
Sử dụng phiên bản đánh giá của một số công cụ phân tích bộ nhớ (ví dụ: http://www.softwareverify.com/cpp-memory.php ) để tìm lỗi. Có một số công cụ miễn phí trên thị trường (đáng chú ý nhất là Valgrind), nhưng tôi không biết bất kỳ công cụ miễn phí nào tốt cho Visual C++.
Ngoài ra, bạn có thể xem bài viết nàyLàm thế nào để gỡ lỗi lỗi tham nhũng đống?Các phương pháp bổ sung về cách giải quyết lỗi này được cung cấp tại đây.
Theo như tôi thấy cho đến nay, lỗi không nằm ở mã bạn đã đăng. Nếu bạn cần thêm trợ giúp, vui lòng cung cấp một ví dụ nhỏ độc lập có lỗi.
Tôi vừa tìm thấy một công cụ miễn phí có thể đáng để thử:Tiến sĩ Trí nhớ .Tôi đến từ ngăn xếp Tất nhiên là có liên kết.
Về lỗi heap trong C++, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11966489/
đóng cửa. Câu hỏi này cần tập trung hơn. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi để tập trung vào một vấn đề chỉnh sửa bài đăng này Đã đóng 8 năm trước. Cải thiện câu hỏi này
Tôi hiện đang cố gắng tạo một ứng dụng rất đơn giản sẽ đưa ra lời chào dựa trên thời gian trong ngày. Mã của tôi là: open System let read() = Console.Read() let readLine() = Co
Mình chạy dịch vụ Elaticsearch đã lâu nhưng đột nhiên gặp phải tình trạng sau do: org.elasticsearch.index.translog.TranslogCorruptedExce
Tôi gặp một vấn đề lạ với tập lệnh chuyển hướng php thực hiện như sau: đặt cookie vào trình duyệt của người dùng hoặc đọc cookie hiện có nếu có. Chuyển hướng người dùng đến một URL khác (URL được chuyển hướng là một tham số trong URL gốc, chẳng hạn như h
Tôi đang sử dụng iText 7.0.0 (kiểu Java) và có vẻ như tính năng HorizontalAlignment của ô trong bảng bị bỏ qua vì cả CENTER và RIGHT đều không hoạt động. Bạn có thể tái tạo điều này? xem thứ này
Tóm lại: Tôi có một biến đếm có thể được truy cập từ nhiều luồng. Mặc dù tôi đã triển khai tính năng bảo vệ đọc/ghi đa luồng, biến dường như vẫn được ghi đồng thời theo cách không nhất quán, dẫn đến kết quả đếm không chính xác. Đi sâu hơn vào đám cỏ dại: Tôi đang sử dụng một "vòng lặp for" để kích hoạt một lượng lớn
Tôi có một dự án REST lưu ArrayList người dùng trong lớp dịch vụ kiểm soát truy cập. Mọi thứ đều hoạt động tốt cho đến khi dịch vụ web REST đột nhiên ném java.util.NoSuchElementException. Kiểm tra một bước
Đã đóng cửa. Câu hỏi này không tuân thủ nguyên tắc Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Câu hỏi này dường như không phải về một vấn đề lập trình cụ thể, một phần mềm
Khi tôi làm mới trang, tôi không thể hiển thị phiếu bầuUp/Down vì nếu tôi thực hiện voteUp/Down(+1 hoặc -1) và làm mới trang, điều này sẽ trả về phiếu bầuUp/Down (0). Trước đây tôi đã sử dụng JSON, nhưng cộng đồng đã khuyên dùng
Tôi đang viết mã cho trình mô phỏng lập lịch CPU theo thời gian riêng biệt. Nó chỉ tạo ra các quy trình và sắp xếp chúng cho phù hợp. Tôi hiện đang triển khai chương trình FCFS. Tôi hiểu bản chất của trình mô phỏng thời gian rời rạc nhưng tôi gặp khó khăn khi triển khai nó trong C++. Sự cố xảy ra trong handN
Đã xảy ra lỗi khi cố gắng sử dụng yum để triển khai gói: 2016-07-07 14:14:31,296 - LỖI - lỗi: vòng/phútdb: BDB0113 Chủ đề/quy trình 6723/1
Tôi có một mẫu hàng đợi được đồng bộ hóa đơn giản class SynchronisedQueue { public: void Enqueue(const T& d
Tôi đang sử dụng hadoop 0.20.append và hbase 0.90.0. Tôi đã tải một lượng nhỏ dữ liệu lên Hbase và sau đó loại bỏ HMaster và Namenode cho mục đích đánh giá. Sau này tôi đã hỏi Hbase
Tôi đã tạo một trang web bằng symfony framework 1.4. Tôi đang sử dụng sfguard để xác thực. Bây giờ tính năng này hoạt động tốt trên WAMP (windows). Tôi có thể đăng nhập vào nhiều tài khoản và sử dụng trang web trên các trình duyệt khác nhau.
Hiện tại tôi đã triển khai HashMap riêng tư tĩnh Map cached = new HashMap(); và Item là một đối tượng có thuộc tính Ngày hết hạn và byte
Tôi đang cố gắng liên kết 2 điều khiển WPF khác nhau với cùng một thuộc tính trong ViewModel, CheckBox.IsChecked và Expander.IsExpanded. Hành vi tôi muốn đạt được là có C
Tôi hy vọng đây là một câu hỏi đơn giản nhưng tôi không tìm thấy câu trả lời. Tôi muốn tệp build.gradle đặt phiên bản trong ứng dụng Spring Boot của mình bằng cách thay thế một số biến nhất định. Điều này hoạt động như được quảng cáo: mã thông báo def =
Đã đóng cửa. Sự cố này yêu cầu chi tiết gỡ lỗi. Câu trả lời không được chấp nhận vào thời điểm này. Chỉnh sửa câu hỏi để bao gồm hành vi mong muốn, một vấn đề hoặc lỗi cụ thể và
Câu hỏi này đã có câu trả lời ở đây: Trong trình đổ bóng phân đoạn, tại sao tôi không thể sử dụng số nguyên đầu vào phẳng để lập chỉ mục cho một mảng thống nhất o
Tôi đã tải xuống bản đồ thế giới OSM. Một ngoại lệ đã xảy ra trong quá trình phân tích cú pháp: bộ thay đổi liên kết osm (...) Ngoại lệ trong chuỗi "chính" org.xml.sax.
Tôi là một lập trình viên xuất sắc, rất giỏi!